// export am , rus , ar ; export burlak , bspoted , burlakv , burlakv_ch , burlakv_wp , burlak_sk ; export arsc0_sk , arv0_ch , arv0_wp , arv0_sk , arv1_ch , arv1_wp , arv1_sk , arv2_ch , arv2_wp , arv2_sk ; export aratt0 , aratt1 , aratt2 , aratt3 , aratt4 , arattv0_ch , arattv0_wp , arattv1_ch , arattv1_wp , arattv2_ch , arattv2_wp , arattv3_ch , arattv3_wp , arattv4_ch , arattv4_wp ; export amreinf0 , amreinf1 , amreinf2 , amreinf3 , amreinfv0_ch , amreinfv0_wp , amreinfv1_ch , amreinfv1_wp ; export bur_hrn , debug , delay1 , delay2 ; var cper , cperiode , supplies ; function set_vars ; begin
   0: LD_INT 0
   2: PPUSH
// am = 1 ;
   3: LD_ADDR_EXP 1
   7: PUSH
   8: LD_INT 1
  10: ST_TO_ADDR
// rus = 3 ;
  11: LD_ADDR_EXP 2
  15: PUSH
  16: LD_INT 3
  18: ST_TO_ADDR
// ar = 2 ;
  19: LD_ADDR_EXP 3
  23: PUSH
  24: LD_INT 2
  26: ST_TO_ADDR
// delay1 = [ 3 3$0 , 2 2$0 , 1 1$0 ] [ difficulty ] ;
  27: LD_ADDR_EXP 45
  31: PUSH
  32: LD_INT 6300
  34: PUSH
  35: LD_INT 4200
  37: PUSH
  38: LD_INT 2100
  40: PUSH
  41: EMPTY
  42: LIST
  43: LIST
  44: LIST
  45: PUSH
  46: LD_OWVAR 67
  50: ARRAY
  51: ST_TO_ADDR
// delay2 = [ 18 , 12 , 6 ] [ difficulty ] ;
  52: LD_ADDR_EXP 46
  56: PUSH
  57: LD_INT 18
  59: PUSH
  60: LD_INT 12
  62: PUSH
  63: LD_INT 6
  65: PUSH
  66: EMPTY
  67: LIST
  68: LIST
  69: LIST
  70: PUSH
  71: LD_OWVAR 67
  75: ARRAY
  76: ST_TO_ADDR
// cperiode = [ 2 2$00 , 2 2$30 , 3 3$00 ] [ difficulty ] ;
  77: LD_ADDR_LOC 2
  81: PUSH
  82: LD_INT 4200
  84: PUSH
  85: LD_INT 5250
  87: PUSH
  88: LD_INT 6300
  90: PUSH
  91: EMPTY
  92: LIST
  93: LIST
  94: LIST
  95: PUSH
  96: LD_OWVAR 67
 100: ARRAY
 101: ST_TO_ADDR
// supplies = [ 11 , 11 , 11 ] [ difficulty ] ;
 102: LD_ADDR_LOC 3
 106: PUSH
 107: LD_INT 11
 109: PUSH
 110: LD_INT 11
 112: PUSH
 113: LD_INT 11
 115: PUSH
 116: EMPTY
 117: LIST
 118: LIST
 119: LIST
 120: PUSH
 121: LD_OWVAR 67
 125: ARRAY
 126: ST_TO_ADDR
// arsc0_sk = [ 5 , 7 , 7 ] [ difficulty ] ;
 127: LD_ADDR_EXP 10
 131: PUSH
 132: LD_INT 5
 134: PUSH
 135: LD_INT 7
 137: PUSH
 138: LD_INT 7
 140: PUSH
 141: EMPTY
 142: LIST
 143: LIST
 144: LIST
 145: PUSH
 146: LD_OWVAR 67
 150: ARRAY
 151: ST_TO_ADDR
// arv0_ch = [ ar_half_tracked , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 152: LD_ADDR_EXP 11
 156: PUSH
 157: LD_INT 14
 159: PUSH
 160: LD_INT 14
 162: PUSH
 163: LD_INT 14
 165: PUSH
 166: EMPTY
 167: LIST
 168: LIST
 169: LIST
 170: PUSH
 171: LD_OWVAR 67
 175: ARRAY
 176: ST_TO_ADDR
// arv0_wp = [ ar_flame_thrower , ar_flame_thrower , ar_flame_thrower ] [ difficulty ] ;
 177: LD_ADDR_EXP 12
 181: PUSH
 182: LD_INT 26
 184: PUSH
 185: LD_INT 26
 187: PUSH
 188: LD_INT 26
 190: PUSH
 191: EMPTY
 192: LIST
 193: LIST
 194: LIST
 195: PUSH
 196: LD_OWVAR 67
 200: ARRAY
 201: ST_TO_ADDR
// arv0_sk = [ 5 , 6 , 7 ] [ difficulty ] ;
 202: LD_ADDR_EXP 13
 206: PUSH
 207: LD_INT 5
 209: PUSH
 210: LD_INT 6
 212: PUSH
 213: LD_INT 7
 215: PUSH
 216: EMPTY
 217: LIST
 218: LIST
 219: LIST
 220: PUSH
 221: LD_OWVAR 67
 225: ARRAY
 226: ST_TO_ADDR
// arv1_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 227: LD_ADDR_EXP 14
 231: PUSH
 232: LD_INT 13
 234: PUSH
 235: LD_INT 14
 237: PUSH
 238: LD_INT 14
 240: PUSH
 241: EMPTY
 242: LIST
 243: LIST
 244: LIST
 245: PUSH
 246: LD_OWVAR 67
 250: ARRAY
 251: ST_TO_ADDR
// arv1_wp = [ ar_gatling_gun , ar_gatling_gun , ar_gatling_gun ] [ difficulty ] ;
 252: LD_ADDR_EXP 15
 256: PUSH
 257: LD_INT 25
 259: PUSH
 260: LD_INT 25
 262: PUSH
 263: LD_INT 25
 265: PUSH
 266: EMPTY
 267: LIST
 268: LIST
 269: LIST
 270: PUSH
 271: LD_OWVAR 67
 275: ARRAY
 276: ST_TO_ADDR
// arv1_sk = [ 5 , 6 , 7 ] [ difficulty ] ;
 277: LD_ADDR_EXP 16
 281: PUSH
 282: LD_INT 5
 284: PUSH
 285: LD_INT 6
 287: PUSH
 288: LD_INT 7
 290: PUSH
 291: EMPTY
 292: LIST
 293: LIST
 294: LIST
 295: PUSH
 296: LD_OWVAR 67
 300: ARRAY
 301: ST_TO_ADDR
// arv2_ch = [ ar_medium_trike , ar_medium_trike , ar_half_tracked ] [ difficulty ] ;
 302: LD_ADDR_EXP 17
 306: PUSH
 307: LD_INT 13
 309: PUSH
 310: LD_INT 13
 312: PUSH
 313: LD_INT 14
 315: PUSH
 316: EMPTY
 317: LIST
 318: LIST
 319: LIST
 320: PUSH
 321: LD_OWVAR 67
 325: ARRAY
 326: ST_TO_ADDR
// arv2_wp = [ ar_gun , ar_gun , ar_gun ] [ difficulty ] ;
 327: LD_ADDR_EXP 18
 331: PUSH
 332: LD_INT 27
 334: PUSH
 335: LD_INT 27
 337: PUSH
 338: LD_INT 27
 340: PUSH
 341: EMPTY
 342: LIST
 343: LIST
 344: LIST
 345: PUSH
 346: LD_OWVAR 67
 350: ARRAY
 351: ST_TO_ADDR
// arv2_sk = [ 6 , 7 , 7 ] [ difficulty ] ;
 352: LD_ADDR_EXP 19
 356: PUSH
 357: LD_INT 6
 359: PUSH
 360: LD_INT 7
 362: PUSH
 363: LD_INT 7
 365: PUSH
 366: EMPTY
 367: LIST
 368: LIST
 369: LIST
 370: PUSH
 371: LD_OWVAR 67
 375: ARRAY
 376: ST_TO_ADDR
// amreinf0 = [ 7 , 6 , 5 ] [ difficulty ] ;
 377: LD_ADDR_EXP 35
 381: PUSH
 382: LD_INT 7
 384: PUSH
 385: LD_INT 6
 387: PUSH
 388: LD_INT 5
 390: PUSH
 391: EMPTY
 392: LIST
 393: LIST
 394: LIST
 395: PUSH
 396: LD_OWVAR 67
 400: ARRAY
 401: ST_TO_ADDR
// amreinf1 = [ 6 , 5 , 5 ] [ difficulty ] ;
 402: LD_ADDR_EXP 36
 406: PUSH
 407: LD_INT 6
 409: PUSH
 410: LD_INT 5
 412: PUSH
 413: LD_INT 5
 415: PUSH
 416: EMPTY
 417: LIST
 418: LIST
 419: LIST
 420: PUSH
 421: LD_OWVAR 67
 425: ARRAY
 426: ST_TO_ADDR
// amreinf2 = [ 6 , 6 , 6 ] [ difficulty ] ;
 427: LD_ADDR_EXP 37
 431: PUSH
 432: LD_INT 6
 434: PUSH
 435: LD_INT 6
 437: PUSH
 438: LD_INT 6
 440: PUSH
 441: EMPTY
 442: LIST
 443: LIST
 444: LIST
 445: PUSH
 446: LD_OWVAR 67
 450: ARRAY
 451: ST_TO_ADDR
// amreinf3 = [ 6 , 5 , 5 ] [ difficulty ] ;
 452: LD_ADDR_EXP 38
 456: PUSH
 457: LD_INT 6
 459: PUSH
 460: LD_INT 5
 462: PUSH
 463: LD_INT 5
 465: PUSH
 466: EMPTY
 467: LIST
 468: LIST
 469: LIST
 470: PUSH
 471: LD_OWVAR 67
 475: ARRAY
 476: ST_TO_ADDR
// amreinfv0_ch = [ us_medium_tracked , us_medium_tracked , us_medium_tracked ] [ difficulty ] ;
 477: LD_ADDR_EXP 39
 481: PUSH
 482: LD_INT 3
 484: PUSH
 485: LD_INT 3
 487: PUSH
 488: LD_INT 3
 490: PUSH
 491: EMPTY
 492: LIST
 493: LIST
 494: LIST
 495: PUSH
 496: LD_OWVAR 67
 500: ARRAY
 501: ST_TO_ADDR
// amreinfv0_wp = [ us_laser , us_laser , us_laser ] [ difficulty ] ;
 502: LD_ADDR_EXP 40
 506: PUSH
 507: LD_INT 9
 509: PUSH
 510: LD_INT 9
 512: PUSH
 513: LD_INT 9
 515: PUSH
 516: EMPTY
 517: LIST
 518: LIST
 519: LIST
 520: PUSH
 521: LD_OWVAR 67
 525: ARRAY
 526: ST_TO_ADDR
// amreinfv1_ch = [ us_heavy_tracked , us_medium_tracked , us_medium_tracked ] [ difficulty ] ;
 527: LD_ADDR_EXP 41
 531: PUSH
 532: LD_INT 4
 534: PUSH
 535: LD_INT 3
 537: PUSH
 538: LD_INT 3
 540: PUSH
 541: EMPTY
 542: LIST
 543: LIST
 544: LIST
 545: PUSH
 546: LD_OWVAR 67
 550: ARRAY
 551: ST_TO_ADDR
// amreinfv1_wp = [ us_heavy_gun , us_double_gun , us_light_gun ] [ difficulty ] ;
 552: LD_ADDR_EXP 42
 556: PUSH
 557: LD_INT 6
 559: PUSH
 560: LD_INT 5
 562: PUSH
 563: LD_INT 3
 565: PUSH
 566: EMPTY
 567: LIST
 568: LIST
 569: LIST
 570: PUSH
 571: LD_OWVAR 67
 575: ARRAY
 576: ST_TO_ADDR
// aratt0 = [ 6 , 6 , 7 ] [ difficulty ] ;
 577: LD_ADDR_EXP 20
 581: PUSH
 582: LD_INT 6
 584: PUSH
 585: LD_INT 6
 587: PUSH
 588: LD_INT 7
 590: PUSH
 591: EMPTY
 592: LIST
 593: LIST
 594: LIST
 595: PUSH
 596: LD_OWVAR 67
 600: ARRAY
 601: ST_TO_ADDR
// aratt1 = [ 5 , 5 , 6 ] [ difficulty ] ;
 602: LD_ADDR_EXP 21
 606: PUSH
 607: LD_INT 5
 609: PUSH
 610: LD_INT 5
 612: PUSH
 613: LD_INT 6
 615: PUSH
 616: EMPTY
 617: LIST
 618: LIST
 619: LIST
 620: PUSH
 621: LD_OWVAR 67
 625: ARRAY
 626: ST_TO_ADDR
// aratt2 = [ 5 , 6 , 7 ] [ difficulty ] ;
 627: LD_ADDR_EXP 22
 631: PUSH
 632: LD_INT 5
 634: PUSH
 635: LD_INT 6
 637: PUSH
 638: LD_INT 7
 640: PUSH
 641: EMPTY
 642: LIST
 643: LIST
 644: LIST
 645: PUSH
 646: LD_OWVAR 67
 650: ARRAY
 651: ST_TO_ADDR
// aratt3 = [ 5 , 6 , 6 ] [ difficulty ] ;
 652: LD_ADDR_EXP 23
 656: PUSH
 657: LD_INT 5
 659: PUSH
 660: LD_INT 6
 662: PUSH
 663: LD_INT 6
 665: PUSH
 666: EMPTY
 667: LIST
 668: LIST
 669: LIST
 670: PUSH
 671: LD_OWVAR 67
 675: ARRAY
 676: ST_TO_ADDR
// aratt4 = [ 6 , 6 , 7 ] [ difficulty ] ;
 677: LD_ADDR_EXP 24
 681: PUSH
 682: LD_INT 6
 684: PUSH
 685: LD_INT 6
 687: PUSH
 688: LD_INT 7
 690: PUSH
 691: EMPTY
 692: LIST
 693: LIST
 694: LIST
 695: PUSH
 696: LD_OWVAR 67
 700: ARRAY
 701: ST_TO_ADDR
// arattv0_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 702: LD_ADDR_EXP 25
 706: PUSH
 707: LD_INT 13
 709: PUSH
 710: LD_INT 14
 712: PUSH
 713: LD_INT 14
 715: PUSH
 716: EMPTY
 717: LIST
 718: LIST
 719: LIST
 720: PUSH
 721: LD_OWVAR 67
 725: ARRAY
 726: ST_TO_ADDR
// arattv0_wp = [ ar_gun , ar_rocket_launcher , ar_rocket_launcher ] [ difficulty ] ;
 727: LD_ADDR_EXP 26
 731: PUSH
 732: LD_INT 27
 734: PUSH
 735: LD_INT 28
 737: PUSH
 738: LD_INT 28
 740: PUSH
 741: EMPTY
 742: LIST
 743: LIST
 744: LIST
 745: PUSH
 746: LD_OWVAR 67
 750: ARRAY
 751: ST_TO_ADDR
// arattv1_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 752: LD_ADDR_EXP 27
 756: PUSH
 757: LD_INT 13
 759: PUSH
 760: LD_INT 14
 762: PUSH
 763: LD_INT 14
 765: PUSH
 766: EMPTY
 767: LIST
 768: LIST
 769: LIST
 770: PUSH
 771: LD_OWVAR 67
 775: ARRAY
 776: ST_TO_ADDR
// arattv1_wp = [ ar_gatling_gun , ar_gatling_gun , ar_gatling_gun ] [ difficulty ] ;
 777: LD_ADDR_EXP 28
 781: PUSH
 782: LD_INT 25
 784: PUSH
 785: LD_INT 25
 787: PUSH
 788: LD_INT 25
 790: PUSH
 791: EMPTY
 792: LIST
 793: LIST
 794: LIST
 795: PUSH
 796: LD_OWVAR 67
 800: ARRAY
 801: ST_TO_ADDR
// arattv2_ch = [ ar_medium_trike , ar_medium_trike , ar_half_tracked ] [ difficulty ] ;
 802: LD_ADDR_EXP 29
 806: PUSH
 807: LD_INT 13
 809: PUSH
 810: LD_INT 13
 812: PUSH
 813: LD_INT 14
 815: PUSH
 816: EMPTY
 817: LIST
 818: LIST
 819: LIST
 820: PUSH
 821: LD_OWVAR 67
 825: ARRAY
 826: ST_TO_ADDR
// arattv2_wp = [ ar_gun , ar_gun , ar_rocket_launcher ] [ difficulty ] ;
 827: LD_ADDR_EXP 30
 831: PUSH
 832: LD_INT 27
 834: PUSH
 835: LD_INT 27
 837: PUSH
 838: LD_INT 28
 840: PUSH
 841: EMPTY
 842: LIST
 843: LIST
 844: LIST
 845: PUSH
 846: LD_OWVAR 67
 850: ARRAY
 851: ST_TO_ADDR
// arattv3_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 852: LD_ADDR_EXP 31
 856: PUSH
 857: LD_INT 13
 859: PUSH
 860: LD_INT 14
 862: PUSH
 863: LD_INT 14
 865: PUSH
 866: EMPTY
 867: LIST
 868: LIST
 869: LIST
 870: PUSH
 871: LD_OWVAR 67
 875: ARRAY
 876: ST_TO_ADDR
// arattv3_wp = [ ar_flame_thrower , ar_flame_thrower , ar_flame_thrower ] [ difficulty ] ;
 877: LD_ADDR_EXP 32
 881: PUSH
 882: LD_INT 26
 884: PUSH
 885: LD_INT 26
 887: PUSH
 888: LD_INT 26
 890: PUSH
 891: EMPTY
 892: LIST
 893: LIST
 894: LIST
 895: PUSH
 896: LD_OWVAR 67
 900: ARRAY
 901: ST_TO_ADDR
// arattv4_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 902: LD_ADDR_EXP 33
 906: PUSH
 907: LD_INT 13
 909: PUSH
 910: LD_INT 14
 912: PUSH
 913: LD_INT 14
 915: PUSH
 916: EMPTY
 917: LIST
 918: LIST
 919: LIST
 920: PUSH
 921: LD_OWVAR 67
 925: ARRAY
 926: ST_TO_ADDR
// arattv4_wp = [ ar_gatling_gun , ar_flame_thrower , ar_flame_thrower ] [ difficulty ] ;
 927: LD_ADDR_EXP 34
 931: PUSH
 932: LD_INT 25
 934: PUSH
 935: LD_INT 26
 937: PUSH
 938: LD_INT 26
 940: PUSH
 941: EMPTY
 942: LIST
 943: LIST
 944: LIST
 945: PUSH
 946: LD_OWVAR 67
 950: ARRAY
 951: ST_TO_ADDR
// burlakv_ch = [ ru_medium_tracked , ru_medium_tracked , ru_heavy_tracked ] [ difficulty ] ;
 952: LD_ADDR_EXP 7
 956: PUSH
 957: LD_INT 22
 959: PUSH
 960: LD_INT 22
 962: PUSH
 963: LD_INT 24
 965: PUSH
 966: EMPTY
 967: LIST
 968: LIST
 969: LIST
 970: PUSH
 971: LD_OWVAR 67
 975: ARRAY
 976: ST_TO_ADDR
// burlakv_wp = [ ru_gatling_gun , ru_gun , ru_heavy_gun ] [ difficulty ] ;
 977: LD_ADDR_EXP 8
 981: PUSH
 982: LD_INT 43
 984: PUSH
 985: LD_INT 44
 987: PUSH
 988: LD_INT 46
 990: PUSH
 991: EMPTY
 992: LIST
 993: LIST
 994: LIST
 995: PUSH
 996: LD_OWVAR 67
1000: ARRAY
1001: ST_TO_ADDR
// burlak_sk = [ 7 , 9 , 10 ] [ difficulty ] ;
1002: LD_ADDR_EXP 9
1006: PUSH
1007: LD_INT 7
1009: PUSH
1010: LD_INT 9
1012: PUSH
1013: LD_INT 10
1015: PUSH
1016: EMPTY
1017: LIST
1018: LIST
1019: LIST
1020: PUSH
1021: LD_OWVAR 67
1025: ARRAY
1026: ST_TO_ADDR
// bur_hrn = [ 300 , 450 , 600 ] [ difficulty ] ;
1027: LD_ADDR_EXP 43
1031: PUSH
1032: LD_INT 300
1034: PUSH
1035: LD_INT 450
1037: PUSH
1038: LD_INT 600
1040: PUSH
1041: EMPTY
1042: LIST
1043: LIST
1044: LIST
1045: PUSH
1046: LD_OWVAR 67
1050: ARRAY
1051: ST_TO_ADDR
// end ;
1052: LD_VAR 0 1
1056: RET
// export go4it ; starting begin debug = false ;
1057: LD_ADDR_EXP 44
1061: PUSH
1062: LD_INT 0
1064: ST_TO_ADDR
// disable ( 01 ) ;
1065: LD_INT 1
1067: DISABLE_MARKED
// disable ( 02 ) ;
1068: LD_INT 2
1070: DISABLE_MARKED
// disable ( 03 ) ;
1071: LD_INT 3
1073: DISABLE_MARKED
// disable ( 04 ) ;
1074: LD_INT 4
1076: DISABLE_MARKED
// disable ( 05 ) ;
1077: LD_INT 5
1079: DISABLE_MARKED
// disable ( 06 ) ;
1080: LD_INT 6
1082: DISABLE_MARKED
// disable ( 07 ) ;
1083: LD_INT 7
1085: DISABLE_MARKED
// disable ( 09 ) ;
1086: LD_INT 9
1088: DISABLE_MARKED
// disable ( 11 ) ;
1089: LD_INT 11
1091: DISABLE_MARKED
// disable ( 12 ) ;
1092: LD_INT 12
1094: DISABLE_MARKED
// disable ( 14 ) ;
1095: LD_INT 14
1097: DISABLE_MARKED
// attno = 0 ;
1098: LD_ADDR_EXP 59
1102: PUSH
1103: LD_INT 0
1105: ST_TO_ADDR
// go4it = rand ( delay2 * 2 , 36 + 18 - 6 * difficulty ) ;
1106: LD_ADDR_EXP 47
1110: PUSH
1111: LD_EXP 46
1115: PUSH
1116: LD_INT 2
1118: MUL
1119: PPUSH
1120: LD_INT 36
1122: PUSH
1123: LD_INT 18
1125: PLUS
1126: PUSH
1127: LD_INT 6
1129: PUSH
1130: LD_OWVAR 67
1134: MUL
1135: MINUS
1136: PPUSH
1137: CALL_OW 12
1141: ST_TO_ADDR
// set_vars ;
1142: CALL 0 0 0
// cper = cperiode ;
1146: LD_ADDR_LOC 1
1150: PUSH
1151: LD_LOC 2
1155: ST_TO_ADDR
// sibsev = false ;
1156: LD_ADDR_EXP 57
1160: PUSH
1161: LD_INT 0
1163: ST_TO_ADDR
// marked_08 = true ;
1164: LD_ADDR_EXP 58
1168: PUSH
1169: LD_INT 1
1171: ST_TO_ADDR
// posily = false ;
1172: LD_ADDR_EXP 51
1176: PUSH
1177: LD_INT 0
1179: ST_TO_ADDR
// prepare_americans ;
1180: CALL 5637 0 0
// intro ;
1184: CALL 1438 0 0
// uc_nation = nation_russian ;
1188: LD_ADDR_OWVAR 21
1192: PUSH
1193: LD_INT 3
1195: ST_TO_ADDR
// uc_side = rus ;
1196: LD_ADDR_OWVAR 20
1200: PUSH
1201: LD_EXP 2
1205: ST_TO_ADDR
// burlak = newcharacter ( Burlak ) ;
1206: LD_ADDR_EXP 4
1210: PUSH
1211: LD_STRING Burlak
1213: PPUSH
1214: CALL_OW 25
1218: ST_TO_ADDR
// if not burlak then
1219: LD_EXP 4
1223: NOT
1224: IFFALSE 1239
// buildquery ( neny Burlak , [ OK ] ) ;
1226: LD_STRING neny Burlak
1228: PPUSH
1229: LD_STRING OK
1231: PUSH
1232: EMPTY
1233: LIST
1234: PPUSH
1235: CALL_OW 99
// setskill ( burlak , skill_mechanical , burlak_sk ) ;
1239: LD_EXP 4
1243: PPUSH
1244: LD_INT 3
1246: PPUSH
1247: LD_EXP 9
1251: PPUSH
1252: CALL_OW 237
// vc_control = control_manual ;
1256: LD_ADDR_OWVAR 38
1260: PUSH
1261: LD_INT 1
1263: ST_TO_ADDR
// vc_engine = engine_siberite ;
1264: LD_ADDR_OWVAR 39
1268: PUSH
1269: LD_INT 3
1271: ST_TO_ADDR
// vc_chassis = burlakv_ch ;
1272: LD_ADDR_OWVAR 37
1276: PUSH
1277: LD_EXP 7
1281: ST_TO_ADDR
// vc_weapon = burlakv_wp ;
1282: LD_ADDR_OWVAR 40
1286: PUSH
1287: LD_EXP 8
1291: ST_TO_ADDR
// burlakv = createvehicle ;
1292: LD_ADDR_EXP 6
1296: PUSH
1297: CALL_OW 45
1301: ST_TO_ADDR
// bspoted = false ;
1302: LD_ADDR_EXP 5
1306: PUSH
1307: LD_INT 0
1309: ST_TO_ADDR
// burlakutekl = false ;
1310: LD_ADDR_EXP 49
1314: PUSH
1315: LD_INT 0
1317: ST_TO_ADDR
// end ;
1318: END
// every 5 5$0 do
1319: GO 1321
1321: DISABLE
// begin createcratesarea ( rand ( 4 , 5 ) , dropzone2 , true ) ;
1322: LD_INT 4
1324: PPUSH
1325: LD_INT 5
1327: PPUSH
1328: CALL_OW 12
1332: PPUSH
1333: LD_INT 14
1335: PPUSH
1336: LD_INT 1
1338: PPUSH
1339: CALL_OW 55
// enable ;
1343: ENABLE
// end ;
1344: END
// every 0 0$15 + 2 2$00 do
1345: GO 1347
1347: DISABLE
// begin cper = cper - 0 0$15 ;
1348: LD_ADDR_LOC 1
1352: PUSH
1353: LD_LOC 1
1357: PUSH
1358: LD_INT 525
1360: MINUS
1361: ST_TO_ADDR
// if cper = 0 then
1362: LD_LOC 1
1366: PUSH
1367: LD_INT 0
1369: EQUAL
1370: IFFALSE 1427
// begin if createcratesarea ( 5 , dropzone , true ) then
1372: LD_INT 5
1374: PPUSH
1375: LD_INT 9
1377: PPUSH
1378: LD_INT 1
1380: PPUSH
1381: CALL_OW 55
1385: IFFALSE 1424
// begin if ( supplies > 1 ) then
1387: LD_LOC 3
1391: PUSH
1392: LD_INT 1
1394: GREATER
1395: IFFALSE 1412
// begin supplies = supplies - 1 ;
1397: LD_ADDR_LOC 3
1401: PUSH
1402: LD_LOC 3
1406: PUSH
1407: LD_INT 1
1409: MINUS
1410: ST_TO_ADDR
// enable ;
1411: ENABLE
// end ; cper = cperiode ;
1412: LD_ADDR_LOC 1
1416: PUSH
1417: LD_LOC 2
1421: ST_TO_ADDR
// end else
1422: GO 1425
// enable ;
1424: ENABLE
// end else
1425: GO 1428
// enable ;
1427: ENABLE
// end ;
1428: END
// every 0 0$7 do
1429: GO 1431
1431: DISABLE
// begin randomize ;
1432: CALL_OW 10
// enable ;
1436: ENABLE
// end ; end_of_file
1437: END
// export americani ; export function intro ; var tmp , tmp1 , tmp2 ; begin
1438: LD_INT 0
1440: PPUSH
1441: PPUSH
1442: PPUSH
1443: PPUSH
// vc_control = control_manual ;
1444: LD_ADDR_OWVAR 38
1448: PUSH
1449: LD_INT 1
1451: ST_TO_ADDR
// vc_engine = engine_siberite ;
1452: LD_ADDR_OWVAR 39
1456: PUSH
1457: LD_INT 3
1459: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
1460: LD_ADDR_OWVAR 37
1464: PUSH
1465: LD_INT 3
1467: ST_TO_ADDR
// vc_weapon = us_double_gun ;
1468: LD_ADDR_OWVAR 40
1472: PUSH
1473: LD_INT 5
1475: ST_TO_ADDR
// tmp = createvehicle ;
1476: LD_ADDR_VAR 0 2
1480: PUSH
1481: CALL_OW 45
1485: ST_TO_ADDR
// setdir ( tmp , 1 ) ;
1486: LD_VAR 0 2
1490: PPUSH
1491: LD_INT 1
1493: PPUSH
1494: CALL_OW 233
// placeunitxy ( tmp , 42 , 66 , false ) ;
1498: LD_VAR 0 2
1502: PPUSH
1503: LD_INT 42
1505: PPUSH
1506: LD_INT 66
1508: PPUSH
1509: LD_INT 0
1511: PPUSH
1512: CALL_OW 48
// placehumaninunit ( john , tmp ) ;
1516: LD_EXP 52
1520: PPUSH
1521: LD_VAR 0 2
1525: PPUSH
1526: CALL_OW 52
// tmp = createvehicle ;
1530: LD_ADDR_VAR 0 2
1534: PUSH
1535: CALL_OW 45
1539: ST_TO_ADDR
// setdir ( tmp , 2 ) ;
1540: LD_VAR 0 2
1544: PPUSH
1545: LD_INT 2
1547: PPUSH
1548: CALL_OW 233
// placeunitxy ( tmp , 44 , 70 , false ) ;
1552: LD_VAR 0 2
1556: PPUSH
1557: LD_INT 44
1559: PPUSH
1560: LD_INT 70
1562: PPUSH
1563: LD_INT 0
1565: PPUSH
1566: CALL_OW 48
// placehumaninunit ( huck , tmp ) ;
1570: LD_EXP 54
1574: PPUSH
1575: LD_VAR 0 2
1579: PPUSH
1580: CALL_OW 52
// tmp2 = 0 ;
1584: LD_ADDR_VAR 0 4
1588: PUSH
1589: LD_INT 0
1591: ST_TO_ADDR
// vc_weapon = us_cargo_bay ;
1592: LD_ADDR_OWVAR 40
1596: PUSH
1597: LD_INT 12
1599: ST_TO_ADDR
// for tmp in americani do
1600: LD_ADDR_VAR 0 2
1604: PUSH
1605: LD_EXP 48
1609: PUSH
1610: FOR_IN
1611: IFFALSE 1748
// begin if tmp2 = 2 then
1613: LD_VAR 0 4
1617: PUSH
1618: LD_INT 2
1620: EQUAL
1621: IFFALSE 1650
// if prob ( 60 ) then
1623: LD_INT 60
1625: PPUSH
1626: CALL_OW 13
1630: IFFALSE 1642
// vc_weapon = us_double_gun else
1632: LD_ADDR_OWVAR 40
1636: PUSH
1637: LD_INT 5
1639: ST_TO_ADDR
1640: GO 1650
// vc_weapon = us_gatling_gun ;
1642: LD_ADDR_OWVAR 40
1646: PUSH
1647: LD_INT 4
1649: ST_TO_ADDR
// tmp1 = createvehicle ;
1650: LD_ADDR_VAR 0 3
1654: PUSH
1655: CALL_OW 45
1659: ST_TO_ADDR
// if tmp2 < 2 then
1660: LD_VAR 0 4
1664: PUSH
1665: LD_INT 2
1667: LESS
1668: IFFALSE 1699
// begin setcargo ( tmp1 , mat_cans , 100 ) ;
1670: LD_VAR 0 3
1674: PPUSH
1675: LD_INT 1
1677: PPUSH
1678: LD_INT 100
1680: PPUSH
1681: CALL_OW 290
// tmp2 = tmp2 + 1 ;
1685: LD_ADDR_VAR 0 4
1689: PUSH
1690: LD_VAR 0 4
1694: PUSH
1695: LD_INT 1
1697: PLUS
1698: ST_TO_ADDR
// end ; setdir ( tmp1 , 1 ) ;
1699: LD_VAR 0 3
1703: PPUSH
1704: LD_INT 1
1706: PPUSH
1707: CALL_OW 233
// placeunitxyr ( tmp1 , 34 , 62 , 7 , false ) ;
1711: LD_VAR 0 3
1715: PPUSH
1716: LD_INT 34
1718: PPUSH
1719: LD_INT 62
1721: PPUSH
1722: LD_INT 7
1724: PPUSH
1725: LD_INT 0
1727: PPUSH
1728: CALL_OW 50
// placehumaninunit ( tmp , tmp1 ) ;
1732: LD_VAR 0 2
1736: PPUSH
1737: LD_VAR 0 3
1741: PPUSH
1742: CALL_OW 52
// end ;
1746: GO 1610
1748: POP
1749: POP
// centernowonxy ( 39 , 66 ) ;
1750: LD_INT 39
1752: PPUSH
1753: LD_INT 66
1755: PPUSH
1756: CALL_OW 86
// dialogueon ;
1760: CALL_OW 6
// say ( john , D2-JMM-1 ) ;
1764: LD_EXP 52
1768: PPUSH
1769: LD_STRING D2-JMM-1
1771: PPUSH
1772: CALL_OW 88
// say ( huck , D2-Huck-1 ) ;
1776: LD_EXP 54
1780: PPUSH
1781: LD_STRING D2-Huck-1
1783: PPUSH
1784: CALL_OW 88
// say ( john , D2-JMM-2 ) ;
1788: LD_EXP 52
1792: PPUSH
1793: LD_STRING D2-JMM-2
1795: PPUSH
1796: CALL_OW 88
// dialogueoff ;
1800: CALL_OW 7
// wait ( 0 0$0.33 ) ;
1804: LD_INT 12
1806: PPUSH
1807: CALL_OW 67
// saveforquickrestart ;
1811: CALL_OW 22
// changemissionobjectives ( M1 ) ;
1815: LD_STRING M1
1817: PPUSH
1818: CALL_OW 337
// end ; end_of_file
1822: LD_VAR 0 1
1826: RET
// export burlakutekl , seznamposil ; every 7 7$0 do var tmp ;
1827: GO 1829
1829: DISABLE
1830: LD_INT 0
1832: PPUSH
// begin dialogueon ;
1833: CALL_OW 6
// sayradio ( powell , D3-Pow-1 ) ;
1837: LD_EXP 53
1841: PPUSH
1842: LD_STRING D3-Pow-1
1844: PPUSH
1845: CALL_OW 94
// say ( john , D3-JMM-1 ) ;
1849: LD_EXP 52
1853: PPUSH
1854: LD_STRING D3-JMM-1
1856: PPUSH
1857: CALL_OW 88
// sayradio ( powell , D3-Pow-2 ) ;
1861: LD_EXP 53
1865: PPUSH
1866: LD_STRING D3-Pow-2
1868: PPUSH
1869: CALL_OW 94
// say ( john , D3-JMM-2 ) ;
1873: LD_EXP 52
1877: PPUSH
1878: LD_STRING D3-JMM-2
1880: PPUSH
1881: CALL_OW 88
// sayradio ( powell , D3-Pow-3 ) ;
1885: LD_EXP 53
1889: PPUSH
1890: LD_STRING D3-Pow-3
1892: PPUSH
1893: CALL_OW 94
// say ( john , D3-JMM-3 ) ;
1897: LD_EXP 52
1901: PPUSH
1902: LD_STRING D3-JMM-3
1904: PPUSH
1905: CALL_OW 88
// sayradio ( powell , D3-Pow-4 ) ;
1909: LD_EXP 53
1913: PPUSH
1914: LD_STRING D3-Pow-4
1916: PPUSH
1917: CALL_OW 94
// say ( john , D3-JMM-4 ) ;
1921: LD_EXP 52
1925: PPUSH
1926: LD_STRING D3-JMM-4
1928: PPUSH
1929: CALL_OW 88
// tmp = nearestunittounit ( filterallunits ( [ [ f_side , am ] , [ f_type , unit_human ] , [ f_sex , sex_male ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john , john ) ;
1933: LD_ADDR_VAR 0 1
1937: PUSH
1938: LD_INT 22
1940: PUSH
1941: LD_EXP 1
1945: PUSH
1946: EMPTY
1947: LIST
1948: LIST
1949: PUSH
1950: LD_INT 21
1952: PUSH
1953: LD_INT 1
1955: PUSH
1956: EMPTY
1957: LIST
1958: LIST
1959: PUSH
1960: LD_INT 26
1962: PUSH
1963: LD_INT 1
1965: PUSH
1966: EMPTY
1967: LIST
1968: LIST
1969: PUSH
1970: LD_INT 50
1972: PUSH
1973: EMPTY
1974: LIST
1975: PUSH
1976: LD_INT 3
1978: PUSH
1979: LD_INT 23
1981: PUSH
1982: LD_INT 0
1984: PUSH
1985: EMPTY
1986: LIST
1987: LIST
1988: PUSH
1989: EMPTY
1990: LIST
1991: LIST
1992: PUSH
1993: EMPTY
1994: LIST
1995: LIST
1996: LIST
1997: LIST
1998: LIST
1999: PPUSH
2000: CALL_OW 69
2004: PUSH
2005: LD_EXP 52
2009: DIFF
2010: PPUSH
2011: LD_EXP 52
2015: PPUSH
2016: CALL_OW 74
2020: ST_TO_ADDR
// if tmp then
2021: LD_VAR 0 1
2025: IFFALSE 2039
// say ( tmp , D3-Sol1-4 ) ;
2027: LD_VAR 0 1
2031: PPUSH
2032: LD_STRING D3-Sol1-4
2034: PPUSH
2035: CALL_OW 88
// dialogueoff ;
2039: CALL_OW 7
// changemissionobjectives ( M2 ) ;
2043: LD_STRING M2
2045: PPUSH
2046: CALL_OW 337
// end ;
2050: PPOPN 1
2052: END
// every 9 9$0 do
2053: GO 2055
2055: DISABLE
// begin setdir ( 2 , burlakv ) ;
2056: LD_INT 2
2058: PPUSH
2059: LD_EXP 6
2063: PPUSH
2064: CALL_OW 233
// placeunitarea ( burlakv , cestasever , false ) ;
2068: LD_EXP 6
2072: PPUSH
2073: LD_INT 4
2075: PPUSH
2076: LD_INT 0
2078: PPUSH
2079: CALL_OW 49
// placehumaninunit ( burlak , burlakv ) ;
2083: LD_EXP 4
2087: PPUSH
2088: LD_EXP 6
2092: PPUSH
2093: CALL_OW 52
// comagressivemove ( burlakv , 106 , 118 ) ;
2097: LD_EXP 6
2101: PPUSH
2102: LD_INT 106
2104: PPUSH
2105: LD_INT 118
2107: PPUSH
2108: CALL_OW 114
// enable ( 10 ) ;
2112: LD_INT 10
2114: ENABLE_MARKED
// end ;
2115: END
// every 0 0$0.5 trigger getlives ( burlakv ) < bur_hrn marked 10 do
2116: LD_EXP 6
2120: PPUSH
2121: CALL_OW 256
2125: PUSH
2126: LD_EXP 43
2130: LESS
2131: IFFALSE 2151
2133: GO 2135
2135: DISABLE
// begin commovexy ( burlakv , 106 , 118 ) end ;
2136: LD_EXP 6
2140: PPUSH
2141: LD_INT 106
2143: PPUSH
2144: LD_INT 118
2146: PPUSH
2147: CALL_OW 111
2151: END
// on unitgoestored ( un ) do if un = burlakv then
2152: LD_VAR 0 1
2156: PUSH
2157: LD_EXP 6
2161: EQUAL
2162: IFFALSE 2186
// begin wait ( 0 0$0.5 ) ;
2164: LD_INT 18
2166: PPUSH
2167: CALL_OW 67
// commovexy ( burlak , 106 , 118 ) ;
2171: LD_EXP 4
2175: PPUSH
2176: LD_INT 106
2178: PPUSH
2179: LD_INT 118
2181: PPUSH
2182: CALL_OW 111
// end ;
2186: PPOPN 1
2188: END
// every 0 0$1 + 9 9$0 do var tmp ;
2189: GO 2191
2191: DISABLE
2192: LD_INT 0
2194: PPUSH
// begin tmp = filterunitsinarea ( cestajihout , [ [ f_side , rus ] ] ) ;
2195: LD_ADDR_VAR 0 1
2199: PUSH
2200: LD_INT 10
2202: PPUSH
2203: LD_INT 22
2205: PUSH
2206: LD_EXP 2
2210: PUSH
2211: EMPTY
2212: LIST
2213: LIST
2214: PUSH
2215: EMPTY
2216: LIST
2217: PPUSH
2218: CALL_OW 70
2222: ST_TO_ADDR
// if tmp then
2223: LD_VAR 0 1
2227: IFFALSE 2252
// begin destroyunit ( tmp [ 1 ] ) ;
2229: LD_VAR 0 1
2233: PUSH
2234: LD_INT 1
2236: ARRAY
2237: PPUSH
2238: CALL_OW 65
// burlakutekl = true ;
2242: LD_ADDR_EXP 49
2246: PUSH
2247: LD_INT 1
2249: ST_TO_ADDR
// end else
2250: GO 2253
// enable ;
2252: ENABLE
// end ;
2253: PPOPN 1
2255: END
// every 0 0$0.5 + 9 9$0 trigger see ( am , burlakv ) do var tmp ;
2256: LD_EXP 1
2260: PPUSH
2261: LD_EXP 6
2265: PPUSH
2266: CALL_OW 292
2270: IFFALSE 2524
2272: GO 2274
2274: DISABLE
2275: LD_INT 0
2277: PPUSH
// begin tmp = nearestunittounit ( filterallunits ( [ [ f_side , am ] , [ f_or , [ f_type , unit_human ] , [ f_control , control_manual ] , [ f_control , control_remote ] ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john , burlakv ) ;
2278: LD_ADDR_VAR 0 1
2282: PUSH
2283: LD_INT 22
2285: PUSH
2286: LD_EXP 1
2290: PUSH
2291: EMPTY
2292: LIST
2293: LIST
2294: PUSH
2295: LD_INT 2
2297: PUSH
2298: LD_INT 21
2300: PUSH
2301: LD_INT 1
2303: PUSH
2304: EMPTY
2305: LIST
2306: LIST
2307: PUSH
2308: LD_INT 33
2310: PUSH
2311: LD_INT 1
2313: PUSH
2314: EMPTY
2315: LIST
2316: LIST
2317: PUSH
2318: LD_INT 33
2320: PUSH
2321: LD_INT 2
2323: PUSH
2324: EMPTY
2325: LIST
2326: LIST
2327: PUSH
2328: EMPTY
2329: LIST
2330: LIST
2331: LIST
2332: LIST
2333: PUSH
2334: LD_INT 3
2336: PUSH
2337: LD_INT 23
2339: PUSH
2340: LD_INT 0
2342: PUSH
2343: EMPTY
2344: LIST
2345: LIST
2346: PUSH
2347: EMPTY
2348: LIST
2349: LIST
2350: PUSH
2351: EMPTY
2352: LIST
2353: LIST
2354: LIST
2355: PPUSH
2356: CALL_OW 69
2360: PUSH
2361: LD_EXP 52
2365: DIFF
2366: PPUSH
2367: LD_EXP 6
2371: PPUSH
2372: CALL_OW 74
2376: ST_TO_ADDR
// if gettype ( tmp ) = unit_vehicle then
2377: LD_VAR 0 1
2381: PPUSH
2382: CALL_OW 247
2386: PUSH
2387: LD_INT 2
2389: EQUAL
2390: IFFALSE 2455
// case getcontrol ( tmp ) of control_manual :
2392: LD_VAR 0 1
2396: PPUSH
2397: CALL_OW 263
2401: PUSH
2402: LD_INT 1
2404: DOUBLE
2405: EQUAL
2406: IFTRUE 2410
2408: GO 2428
2410: POP
// tmp = isdrivenby ( tmp ) ; control_remote :
2411: LD_ADDR_VAR 0 1
2415: PUSH
2416: LD_VAR 0 1
2420: PPUSH
2421: CALL_OW 311
2425: ST_TO_ADDR
2426: GO 2455
2428: LD_INT 2
2430: DOUBLE
2431: EQUAL
2432: IFTRUE 2436
2434: GO 2454
2436: POP
// tmp = iscontroledby ( tmp ) ; end ;
2437: LD_ADDR_VAR 0 1
2441: PUSH
2442: LD_VAR 0 1
2446: PPUSH
2447: CALL_OW 312
2451: ST_TO_ADDR
2452: GO 2455
2454: POP
// dialogueon ;
2455: CALL_OW 6
// if getsex ( tmp ) = sex_male then
2459: LD_VAR 0 1
2463: PPUSH
2464: CALL_OW 258
2468: PUSH
2469: LD_INT 1
2471: EQUAL
2472: IFFALSE 2488
// say ( tmp , D5-Sol1-1 ) else
2474: LD_VAR 0 1
2478: PPUSH
2479: LD_STRING D5-Sol1-1
2481: PPUSH
2482: CALL_OW 88
2486: GO 2500
// say ( tmp , D5-FSol1-1 ) ;
2488: LD_VAR 0 1
2492: PPUSH
2493: LD_STRING D5-FSol1-1
2495: PPUSH
2496: CALL_OW 88
// say ( john , D5-JMM-1 ) ;
2500: LD_EXP 52
2504: PPUSH
2505: LD_STRING D5-JMM-1
2507: PPUSH
2508: CALL_OW 88
// dialogueoff ;
2512: CALL_OW 7
// bspoted = true ;
2516: LD_ADDR_EXP 5
2520: PUSH
2521: LD_INT 1
2523: ST_TO_ADDR
// end ;
2524: PPOPN 1
2526: END
// every 0 0$0.51 + 9 9$0 trigger bspoted and ( not isplaced ( burlak ) ) do var tmp ;
2527: LD_EXP 5
2531: PUSH
2532: LD_EXP 4
2536: PPUSH
2537: CALL_OW 305
2541: NOT
2542: AND
2543: IFFALSE 2724
2545: GO 2547
2547: DISABLE
2548: LD_INT 0
2550: PPUSH
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_type , unit_human ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
2551: LD_ADDR_VAR 0 1
2555: PUSH
2556: LD_INT 22
2558: PUSH
2559: LD_EXP 1
2563: PUSH
2564: EMPTY
2565: LIST
2566: LIST
2567: PUSH
2568: LD_INT 21
2570: PUSH
2571: LD_INT 1
2573: PUSH
2574: EMPTY
2575: LIST
2576: LIST
2577: PUSH
2578: LD_INT 50
2580: PUSH
2581: EMPTY
2582: LIST
2583: PUSH
2584: LD_INT 3
2586: PUSH
2587: LD_INT 23
2589: PUSH
2590: LD_INT 0
2592: PUSH
2593: EMPTY
2594: LIST
2595: LIST
2596: PUSH
2597: EMPTY
2598: LIST
2599: LIST
2600: PUSH
2601: EMPTY
2602: LIST
2603: LIST
2604: LIST
2605: LIST
2606: PPUSH
2607: CALL_OW 69
2611: PUSH
2612: LD_EXP 52
2616: DIFF
2617: ST_TO_ADDR
// if burlakutekl then
2618: LD_EXP 49
2622: IFFALSE 2675
// begin dialogueon ;
2624: CALL_OW 6
// say ( john , D5a-JMM-1 ) ;
2628: LD_EXP 52
2632: PPUSH
2633: LD_STRING D5a-JMM-1
2635: PPUSH
2636: CALL_OW 88
// if tmp then
2640: LD_VAR 0 1
2644: IFFALSE 2662
// say ( tmp [ 1 ] , D5a-Sol1-1 ) ;
2646: LD_VAR 0 1
2650: PUSH
2651: LD_INT 1
2653: ARRAY
2654: PPUSH
2655: LD_STRING D5a-Sol1-1
2657: PPUSH
2658: CALL_OW 88
// dialogueoff ;
2662: CALL_OW 7
// changemissionobjectives ( M2b ) ;
2666: LD_STRING M2b
2668: PPUSH
2669: CALL_OW 337
// end else
2673: GO 2724
// begin dialogueon ;
2675: CALL_OW 6
// say ( john , D5b-JMM-1 ) ;
2679: LD_EXP 52
2683: PPUSH
2684: LD_STRING D5b-JMM-1
2686: PPUSH
2687: CALL_OW 88
// if tmp then
2691: LD_VAR 0 1
2695: IFFALSE 2713
// say ( tmp [ 1 ] , D5b-Sol1-1 ) ;
2697: LD_VAR 0 1
2701: PUSH
2702: LD_INT 1
2704: ARRAY
2705: PPUSH
2706: LD_STRING D5b-Sol1-1
2708: PPUSH
2709: CALL_OW 88
// dialogueoff ;
2713: CALL_OW 7
// changemissionobjectives ( M2a ) ;
2717: LD_STRING M2a
2719: PPUSH
2720: CALL_OW 337
// end ; end ;
2724: PPOPN 1
2726: END
// on unitdestroyed ( un ) do var tmp ;
2727: LD_INT 0
2729: PPUSH
// if un = huck then
2730: LD_VAR 0 1
2734: PUSH
2735: LD_EXP 54
2739: EQUAL
2740: IFFALSE 2909
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_type , unit_human ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
2742: LD_ADDR_VAR 0 2
2746: PUSH
2747: LD_INT 22
2749: PUSH
2750: LD_EXP 1
2754: PUSH
2755: EMPTY
2756: LIST
2757: LIST
2758: PUSH
2759: LD_INT 21
2761: PUSH
2762: LD_INT 1
2764: PUSH
2765: EMPTY
2766: LIST
2767: LIST
2768: PUSH
2769: LD_INT 50
2771: PUSH
2772: EMPTY
2773: LIST
2774: PUSH
2775: LD_INT 3
2777: PUSH
2778: LD_INT 23
2780: PUSH
2781: LD_INT 0
2783: PUSH
2784: EMPTY
2785: LIST
2786: LIST
2787: PUSH
2788: EMPTY
2789: LIST
2790: LIST
2791: PUSH
2792: EMPTY
2793: LIST
2794: LIST
2795: LIST
2796: LIST
2797: PPUSH
2798: CALL_OW 69
2802: PUSH
2803: LD_EXP 52
2807: DIFF
2808: ST_TO_ADDR
// dialogueon ;
2809: CALL_OW 6
// say ( john , D6-JMM-1 ) ;
2813: LD_EXP 52
2817: PPUSH
2818: LD_STRING D6-JMM-1
2820: PPUSH
2821: CALL_OW 88
// if tmp then
2825: LD_VAR 0 2
2829: IFFALSE 2884
// if getsex ( tmp [ 1 ] ) = sex_male then
2831: LD_VAR 0 2
2835: PUSH
2836: LD_INT 1
2838: ARRAY
2839: PPUSH
2840: CALL_OW 258
2844: PUSH
2845: LD_INT 1
2847: EQUAL
2848: IFFALSE 2868
// say ( tmp [ 1 ] , D6-Sol1-1 ) else
2850: LD_VAR 0 2
2854: PUSH
2855: LD_INT 1
2857: ARRAY
2858: PPUSH
2859: LD_STRING D6-Sol1-1
2861: PPUSH
2862: CALL_OW 88
2866: GO 2884
// say ( tmp [ 1 ] , D6-FSol1-1 ) ;
2868: LD_VAR 0 2
2872: PUSH
2873: LD_INT 1
2875: ARRAY
2876: PPUSH
2877: LD_STRING D6-FSol1-1
2879: PPUSH
2880: CALL_OW 88
// say ( john , D6-JMM-2 ) ;
2884: LD_EXP 52
2888: PPUSH
2889: LD_STRING D6-JMM-2
2891: PPUSH
2892: CALL_OW 88
// dialogueoff ;
2896: CALL_OW 7
// changemissionobjectives ( M1a ) ;
2900: LD_STRING M1a
2902: PPUSH
2903: CALL_OW 337
// end else
2907: GO 2950
// if un = john then
2909: LD_VAR 0 1
2913: PUSH
2914: LD_EXP 52
2918: EQUAL
2919: IFFALSE 2930
// youlost ( JMM ) else
2921: LD_STRING JMM
2923: PPUSH
2924: CALL_OW 104
2928: GO 2950
// if un = arabsci then
2930: LD_VAR 0 1
2934: PUSH
2935: LD_EXP 55
2939: EQUAL
2940: IFFALSE 2950
// arsci_cipl = true ;
2942: LD_ADDR_EXP 56
2946: PUSH
2947: LD_INT 1
2949: ST_TO_ADDR
2950: PPOPN 2
2952: END
// on humandestroyed ( un , side , nation , x , y , direction , sex , class ) do if ( not un = john ) and ( not un = huck ) then
2953: LD_VAR 0 1
2957: PUSH
2958: LD_EXP 52
2962: EQUAL
2963: NOT
2964: PUSH
2965: LD_VAR 0 1
2969: PUSH
2970: LD_EXP 54
2974: EQUAL
2975: NOT
2976: AND
2977: IFFALSE 3011
// if class = class_scientistic and inarea ( x , y , target ) then
2979: LD_VAR 0 8
2983: PUSH
2984: LD_INT 4
2986: EQUAL
2987: PUSH
2988: LD_VAR 0 4
2992: PPUSH
2993: LD_VAR 0 5
2997: PPUSH
2998: LD_INT 6
3000: PPUSH
3001: CALL_OW 309
3005: AND
3006: IFFALSE 3011
// enable ( 06 ) ;
3008: LD_INT 6
3010: ENABLE_MARKED
3011: PPOPN 8
3013: END
// on researchcomplete ( tech , lab ) do var tmp , tmp1 , tmp2 ;
3014: LD_INT 0
3016: PPUSH
3017: PPUSH
3018: PPUSH
// if tech = tech_sibfiss then
3019: LD_VAR 0 1
3023: PUSH
3024: LD_INT 25
3026: EQUAL
3027: IFFALSE 3308
// begin dialogueon ;
3029: CALL_OW 6
// if isok ( huck ) then
3033: LD_EXP 54
3037: PPUSH
3038: CALL_OW 302
3042: IFFALSE 3058
// say ( huck , D6-Huck-2 ) else
3044: LD_EXP 54
3048: PPUSH
3049: LD_STRING D6-Huck-2
3051: PPUSH
3052: CALL_OW 88
3056: GO 3304
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_class , class_scientistic ] , [ f_ok ] ] ) diff john ;
3058: LD_ADDR_VAR 0 3
3062: PUSH
3063: LD_INT 22
3065: PUSH
3066: LD_EXP 1
3070: PUSH
3071: EMPTY
3072: LIST
3073: LIST
3074: PUSH
3075: LD_INT 25
3077: PUSH
3078: LD_INT 4
3080: PUSH
3081: EMPTY
3082: LIST
3083: LIST
3084: PUSH
3085: LD_INT 50
3087: PUSH
3088: EMPTY
3089: LIST
3090: PUSH
3091: EMPTY
3092: LIST
3093: LIST
3094: LIST
3095: PPUSH
3096: CALL_OW 69
3100: PUSH
3101: LD_EXP 52
3105: DIFF
3106: ST_TO_ADDR
// if not tmp then
3107: LD_VAR 0 3
3111: NOT
3112: IFFALSE 3243
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
3114: LD_ADDR_VAR 0 3
3118: PUSH
3119: LD_INT 22
3121: PUSH
3122: LD_EXP 1
3126: PUSH
3127: EMPTY
3128: LIST
3129: LIST
3130: PUSH
3131: LD_INT 50
3133: PUSH
3134: EMPTY
3135: LIST
3136: PUSH
3137: LD_INT 3
3139: PUSH
3140: LD_INT 23
3142: PUSH
3143: LD_INT 0
3145: PUSH
3146: EMPTY
3147: LIST
3148: LIST
3149: PUSH
3150: EMPTY
3151: LIST
3152: LIST
3153: PUSH
3154: EMPTY
3155: LIST
3156: LIST
3157: LIST
3158: PPUSH
3159: CALL_OW 69
3163: PUSH
3164: LD_EXP 52
3168: DIFF
3169: ST_TO_ADDR
// tmp1 = [ ] ;
3170: LD_ADDR_VAR 0 4
3174: PUSH
3175: EMPTY
3176: ST_TO_ADDR
// for tmp2 in tmp do
3177: LD_ADDR_VAR 0 5
3181: PUSH
3182: LD_VAR 0 3
3186: PUSH
3187: FOR_IN
3188: IFFALSE 3219
// tmp1 = tmp1 ^ [ getskill ( tmp2 , skill_scientistic ) ] ;
3190: LD_ADDR_VAR 0 4
3194: PUSH
3195: LD_VAR 0 4
3199: PUSH
3200: LD_VAR 0 5
3204: PPUSH
3205: LD_INT 4
3207: PPUSH
3208: CALL_OW 259
3212: PUSH
3213: EMPTY
3214: LIST
3215: ADD
3216: ST_TO_ADDR
3217: GO 3187
3219: POP
3220: POP
// tmp = bestfromlistbylist ( tmp , tmp1 ) ;
3221: LD_ADDR_VAR 0 3
3225: PUSH
3226: LD_VAR 0 3
3230: PPUSH
3231: LD_VAR 0 4
3235: PPUSH
3236: CALL_OW 79
3240: ST_TO_ADDR
// end else
3241: GO 3257
// tmp = tmp [ 1 ] ;
3243: LD_ADDR_VAR 0 3
3247: PUSH
3248: LD_VAR 0 3
3252: PUSH
3253: LD_INT 1
3255: ARRAY
3256: ST_TO_ADDR
// if tmp then
3257: LD_VAR 0 3
3261: IFFALSE 3304
// if getsex ( tmp ) = sex_male then
3263: LD_VAR 0 3
3267: PPUSH
3268: CALL_OW 258
3272: PUSH
3273: LD_INT 1
3275: EQUAL
3276: IFFALSE 3292
// say ( tmp , D6-Sci1-2 ) else
3278: LD_VAR 0 3
3282: PPUSH
3283: LD_STRING D6-Sci1-2
3285: PPUSH
3286: CALL_OW 88
3290: GO 3304
// say ( tmp , D6-FSci1-2 ) ;
3292: LD_VAR 0 3
3296: PPUSH
3297: LD_STRING D6-FSci1-2
3299: PPUSH
3300: CALL_OW 88
// end ; dialogueoff ;
3304: CALL_OW 7
// end ;
3308: PPOPN 5
3310: END
// export posily ; on vehicleconstructionstarted ( fact , chass , eng , cntrl , weap ) do if weap = us_siberium_rocket then
3311: LD_VAR 0 5
3315: PUSH
3316: LD_INT 8
3318: EQUAL
3319: IFFALSE 3362
// begin dialogueon ;
3321: CALL_OW 6
// say ( john , D6a-JMM-1 ) ;
3325: LD_EXP 52
3329: PPUSH
3330: LD_STRING D6a-JMM-1
3332: PPUSH
3333: CALL_OW 88
// sayradio ( powell , D6a-Pow-1 ) ;
3337: LD_EXP 53
3341: PPUSH
3342: LD_STRING D6a-Pow-1
3344: PPUSH
3345: CALL_OW 94
// dialogueoff ;
3349: CALL_OW 7
// posily = true ;
3353: LD_ADDR_EXP 51
3357: PUSH
3358: LD_INT 1
3360: ST_TO_ADDR
// disable ;
3361: DISABLE
// end ;
3362: PPOPN 5
3364: END
// every 0 0$1 trigger posily do var tmp ;
3365: LD_EXP 51
3369: IFFALSE 3748
3371: GO 3373
3373: DISABLE
3374: LD_INT 0
3376: PPUSH
// begin wait ( 1 1$0 ) ;
3377: LD_INT 2100
3379: PPUSH
3380: CALL_OW 67
// uc_side = am ;
3384: LD_ADDR_OWVAR 20
3388: PUSH
3389: LD_EXP 1
3393: ST_TO_ADDR
// uc_nation = nation_american ;
3394: LD_ADDR_OWVAR 21
3398: PUSH
3399: LD_INT 1
3401: ST_TO_ADDR
// vc_chassis = amreinfv0_ch ;
3402: LD_ADDR_OWVAR 37
3406: PUSH
3407: LD_EXP 39
3411: ST_TO_ADDR
// vc_control = control_manual ;
3412: LD_ADDR_OWVAR 38
3416: PUSH
3417: LD_INT 1
3419: ST_TO_ADDR
// vc_engine = engine_siberite ;
3420: LD_ADDR_OWVAR 39
3424: PUSH
3425: LD_INT 3
3427: ST_TO_ADDR
// vc_weapon = amreinfv0_wp ;
3428: LD_ADDR_OWVAR 40
3432: PUSH
3433: LD_EXP 40
3437: ST_TO_ADDR
// tmp = createvehicle ;
3438: LD_ADDR_VAR 0 1
3442: PUSH
3443: CALL_OW 45
3447: ST_TO_ADDR
// setdir ( tmp , 1 ) ;
3448: LD_VAR 0 1
3452: PPUSH
3453: LD_INT 1
3455: PPUSH
3456: CALL_OW 233
// placeunitxyr ( tmp , 34 , 62 , 6 , false ) ;
3460: LD_VAR 0 1
3464: PPUSH
3465: LD_INT 34
3467: PPUSH
3468: LD_INT 62
3470: PPUSH
3471: LD_INT 6
3473: PPUSH
3474: LD_INT 0
3476: PPUSH
3477: CALL_OW 50
// preparemechanic ( sex_male , amreinf0 ) ;
3481: LD_INT 1
3483: PPUSH
3484: LD_EXP 35
3488: PPUSH
3489: CALL_OW 383
// seznamposil := [ CreateHuman ] ;
3493: LD_ADDR_EXP 50
3497: PUSH
3498: CALL_OW 44
3502: PUSH
3503: EMPTY
3504: LIST
3505: ST_TO_ADDR
// placehumaninunit ( seznamposil [ 1 ] , tmp ) ;
3506: LD_EXP 50
3510: PUSH
3511: LD_INT 1
3513: ARRAY
3514: PPUSH
3515: LD_VAR 0 1
3519: PPUSH
3520: CALL_OW 52
// vc_chassis = amreinfv1_ch ;
3524: LD_ADDR_OWVAR 37
3528: PUSH
3529: LD_EXP 41
3533: ST_TO_ADDR
// vc_weapon = amreinfv1_wp ;
3534: LD_ADDR_OWVAR 40
3538: PUSH
3539: LD_EXP 42
3543: ST_TO_ADDR
// tmp = createvehicle ;
3544: LD_ADDR_VAR 0 1
3548: PUSH
3549: CALL_OW 45
3553: ST_TO_ADDR
// setdir ( tmp , 1 ) ;
3554: LD_VAR 0 1
3558: PPUSH
3559: LD_INT 1
3561: PPUSH
3562: CALL_OW 233
// placeunitxyr ( tmp , 34 , 62 , 6 , false ) ;
3566: LD_VAR 0 1
3570: PPUSH
3571: LD_INT 34
3573: PPUSH
3574: LD_INT 62
3576: PPUSH
3577: LD_INT 6
3579: PPUSH
3580: LD_INT 0
3582: PPUSH
3583: CALL_OW 50
// preparemechanic ( sex_male , amreinf1 ) ;
3587: LD_INT 1
3589: PPUSH
3590: LD_EXP 36
3594: PPUSH
3595: CALL_OW 383
// seznamposil := seznamposil ^ [ CreateHuman ] ;
3599: LD_ADDR_EXP 50
3603: PUSH
3604: LD_EXP 50
3608: PUSH
3609: CALL_OW 44
3613: PUSH
3614: EMPTY
3615: LIST
3616: ADD
3617: ST_TO_ADDR
// placehumaninunit ( seznamposil [ 2 ] , tmp ) ;
3618: LD_EXP 50
3622: PUSH
3623: LD_INT 2
3625: ARRAY
3626: PPUSH
3627: LD_VAR 0 1
3631: PPUSH
3632: CALL_OW 52
// preparesoldier ( sex_male , amreinf2 ) ;
3636: LD_INT 1
3638: PPUSH
3639: LD_EXP 37
3643: PPUSH
3644: CALL_OW 381
// seznamposil := seznamposil ^ [ CreateHuman ] ;
3648: LD_ADDR_EXP 50
3652: PUSH
3653: LD_EXP 50
3657: PUSH
3658: CALL_OW 44
3662: PUSH
3663: EMPTY
3664: LIST
3665: ADD
3666: ST_TO_ADDR
// placeunitxyr ( seznamposil [ 3 ] , 34 , 62 , 5 , false ) ;
3667: LD_EXP 50
3671: PUSH
3672: LD_INT 3
3674: ARRAY
3675: PPUSH
3676: LD_INT 34
3678: PPUSH
3679: LD_INT 62
3681: PPUSH
3682: LD_INT 5
3684: PPUSH
3685: LD_INT 0
3687: PPUSH
3688: CALL_OW 50
// preparesoldier ( sex_male , amreinf3 ) ;
3692: LD_INT 1
3694: PPUSH
3695: LD_EXP 38
3699: PPUSH
3700: CALL_OW 381
// seznamposil := seznamposil ^ [ CreateHuman ] ;
3704: LD_ADDR_EXP 50
3708: PUSH
3709: LD_EXP 50
3713: PUSH
3714: CALL_OW 44
3718: PUSH
3719: EMPTY
3720: LIST
3721: ADD
3722: ST_TO_ADDR
// placeunitxyr ( seznamposil [ 4 ] , 34 , 62 , 5 , false ) ;
3723: LD_EXP 50
3727: PUSH
3728: LD_INT 4
3730: ARRAY
3731: PPUSH
3732: LD_INT 34
3734: PPUSH
3735: LD_INT 62
3737: PPUSH
3738: LD_INT 5
3740: PPUSH
3741: LD_INT 0
3743: PPUSH
3744: CALL_OW 50
// end ;
3748: PPOPN 1
3750: END
// on vehicleconstructed ( veh , fact ) marked 13 do if getweapon ( veh ) = us_siberium_rocket then
3751: LD_VAR 0 1
3755: PPUSH
3756: CALL_OW 264
3760: PUSH
3761: LD_INT 8
3763: EQUAL
3764: IFFALSE 3821
// begin dialogueon ;
3766: CALL_OW 6
// say ( john , D6b-JMM-1 ) ;
3770: LD_EXP 52
3774: PPUSH
3775: LD_STRING D6b-JMM-1
3777: PPUSH
3778: CALL_OW 88
// sayradio ( powell , D6b-Pow-1 ) ;
3782: LD_EXP 53
3786: PPUSH
3787: LD_STRING D6b-Pow-1
3789: PPUSH
3790: CALL_OW 94
// dialogueoff ;
3794: CALL_OW 7
// changemissionobjectives ( M3 ) ;
3798: LD_STRING M3
3800: PPUSH
3801: CALL_OW 337
// setareamapshow ( target , 1 ) ;
3805: LD_INT 6
3807: PPUSH
3808: LD_INT 1
3810: PPUSH
3811: CALL_OW 424
// disable ( 13 ) ;
3815: LD_INT 13
3817: DISABLE_MARKED
// enable ( 04 ) ;
3818: LD_INT 4
3820: ENABLE_MARKED
// end ;
3821: PPOPN 2
3823: END
// on weaponplaced ( bld , fact ) marked 13 do if getbweapon ( bld ) = us_siberium_rocket then
3824: LD_VAR 0 1
3828: PPUSH
3829: CALL_OW 269
3833: PUSH
3834: LD_INT 8
3836: EQUAL
3837: IFFALSE 3894
// begin dialogueon ;
3839: CALL_OW 6
// say ( john , D6b-JMM-1 ) ;
3843: LD_EXP 52
3847: PPUSH
3848: LD_STRING D6b-JMM-1
3850: PPUSH
3851: CALL_OW 88
// sayradio ( powell , D6b-Pow-1 ) ;
3855: LD_EXP 53
3859: PPUSH
3860: LD_STRING D6b-Pow-1
3862: PPUSH
3863: CALL_OW 94
// dialogueoff ;
3867: CALL_OW 7
// changemissionobjectives ( M3 ) ;
3871: LD_STRING M3
3873: PPUSH
3874: CALL_OW 337
// setareamapshow ( target , 1 ) ;
3878: LD_INT 6
3880: PPUSH
3881: LD_INT 1
3883: PPUSH
3884: CALL_OW 424
// disable ( 13 ) ;
3888: LD_INT 13
3890: DISABLE_MARKED
// enable ( 04 ) ;
3891: LD_INT 4
3893: ENABLE_MARKED
// end ;
3894: PPOPN 2
3896: END
// every 0 0$2 marked 04 do var tmp , tmp1 , warehouseok , barracksok , turretok , vehok ;
3897: GO 3899
3899: DISABLE
3900: LD_INT 0
3902: PPUSH
3903: PPUSH
3904: PPUSH
3905: PPUSH
3906: PPUSH
3907: PPUSH
// begin warehouseok = false ;
3908: LD_ADDR_VAR 0 3
3912: PUSH
3913: LD_INT 0
3915: ST_TO_ADDR
// barracksok = false ;
3916: LD_ADDR_VAR 0 4
3920: PUSH
3921: LD_INT 0
3923: ST_TO_ADDR
// turretok = false ;
3924: LD_ADDR_VAR 0 5
3928: PUSH
3929: LD_INT 0
3931: ST_TO_ADDR
// vehok = false ;
3932: LD_ADDR_VAR 0 6
3936: PUSH
3937: LD_INT 0
3939: ST_TO_ADDR
// tmp = filterunitsinarea ( target , [ [ f_side , am ] , [ f_type , unit_building ] , f_not , [ f_constructed ] ] ) ;
3940: LD_ADDR_VAR 0 1
3944: PUSH
3945: LD_INT 6
3947: PPUSH
3948: LD_INT 22
3950: PUSH
3951: LD_EXP 1
3955: PUSH
3956: EMPTY
3957: LIST
3958: LIST
3959: PUSH
3960: LD_INT 21
3962: PUSH
3963: LD_INT 3
3965: PUSH
3966: EMPTY
3967: LIST
3968: LIST
3969: PUSH
3970: LD_INT 3
3972: PUSH
3973: LD_INT 57
3975: PUSH
3976: EMPTY
3977: LIST
3978: PUSH
3979: EMPTY
3980: LIST
3981: LIST
3982: LIST
3983: LIST
3984: PPUSH
3985: CALL_OW 70
3989: ST_TO_ADDR
// for tmp1 in tmp do
3990: LD_ADDR_VAR 0 2
3994: PUSH
3995: LD_VAR 0 1
3999: PUSH
4000: FOR_IN
4001: IFFALSE 4073
// case getbtype ( tmp1 ) of b_warehouse :
4003: LD_VAR 0 2
4007: PPUSH
4008: CALL_OW 266
4012: PUSH
4013: LD_INT 1
4015: DOUBLE
4016: EQUAL
4017: IFTRUE 4021
4019: GO 4032
4021: POP
// warehouseok = true ; b_barracks :
4022: LD_ADDR_VAR 0 3
4026: PUSH
4027: LD_INT 1
4029: ST_TO_ADDR
4030: GO 4071
4032: LD_INT 5
4034: DOUBLE
4035: EQUAL
4036: IFTRUE 4040
4038: GO 4051
4040: POP
// barracksok = true ; b_turret :
4041: LD_ADDR_VAR 0 4
4045: PUSH
4046: LD_INT 1
4048: ST_TO_ADDR
4049: GO 4071
4051: LD_INT 33
4053: DOUBLE
4054: EQUAL
4055: IFTRUE 4059
4057: GO 4070
4059: POP
// turretok = true ; end ;
4060: LD_ADDR_VAR 0 5
4064: PUSH
4065: LD_INT 1
4067: ST_TO_ADDR
4068: GO 4071
4070: POP
4071: GO 4000
4073: POP
4074: POP
// tmp = filterunitsinarea ( target , [ [ f_side , am ] , [ f_or , [ f_control , control_computer ] , [ f_control , control_remote ] ] ] ) ;
4075: LD_ADDR_VAR 0 1
4079: PUSH
4080: LD_INT 6
4082: PPUSH
4083: LD_INT 22
4085: PUSH
4086: LD_EXP 1
4090: PUSH
4091: EMPTY
4092: LIST
4093: LIST
4094: PUSH
4095: LD_INT 2
4097: PUSH
4098: LD_INT 33
4100: PUSH
4101: LD_INT 3
4103: PUSH
4104: EMPTY
4105: LIST
4106: LIST
4107: PUSH
4108: LD_INT 33
4110: PUSH
4111: LD_INT 2
4113: PUSH
4114: EMPTY
4115: LIST
4116: LIST
4117: PUSH
4118: EMPTY
4119: LIST
4120: LIST
4121: LIST
4122: PUSH
4123: EMPTY
4124: LIST
4125: LIST
4126: PPUSH
4127: CALL_OW 70
4131: ST_TO_ADDR
// for tmp1 in tmp do
4132: LD_ADDR_VAR 0 2
4136: PUSH
4137: LD_VAR 0 1
4141: PUSH
4142: FOR_IN
4143: IFFALSE 4196
// case getchassis ( tmp1 ) of us_heavy_tracked :
4145: LD_VAR 0 2
4149: PPUSH
4150: CALL_OW 265
4154: PUSH
4155: LD_INT 4
4157: DOUBLE
4158: EQUAL
4159: IFTRUE 4163
4161: GO 4174
4163: POP
// vehok = true ; us_morphling :
4164: LD_ADDR_VAR 0 6
4168: PUSH
4169: LD_INT 1
4171: ST_TO_ADDR
4172: GO 4194
4174: LD_INT 5
4176: DOUBLE
4177: EQUAL
4178: IFTRUE 4182
4180: GO 4193
4182: POP
// vehok = true ; end ;
4183: LD_ADDR_VAR 0 6
4187: PUSH
4188: LD_INT 1
4190: ST_TO_ADDR
4191: GO 4194
4193: POP
4194: GO 4142
4196: POP
4197: POP
// if warehouseok and barracksok then
4198: LD_VAR 0 3
4202: PUSH
4203: LD_VAR 0 4
4207: AND
4208: IFFALSE 4252
// begin dialogueon ;
4210: CALL_OW 6
// say ( john , D7-JMM-1 ) ;
4214: LD_EXP 52
4218: PPUSH
4219: LD_STRING D7-JMM-1
4221: PPUSH
4222: CALL_OW 88
// dialogueoff ;
4226: CALL_OW 7
// changemissionobjectives ( M4 ) ;
4230: LD_STRING M4
4232: PPUSH
4233: CALL_OW 337
// setareamapshow ( radar_post , 1 ) ;
4237: LD_INT 12
4239: PPUSH
4240: LD_INT 1
4242: PPUSH
4243: CALL_OW 424
// enable ( 09 ) ;
4247: LD_INT 9
4249: ENABLE_MARKED
// end else
4250: GO 4253
// enable ;
4252: ENABLE
// end ;
4253: PPOPN 6
4255: END
// on siberiterocketexploded ( un , x , y ) marked 09 do if inarea ( x , y , target ) then
4256: LD_VAR 0 2
4260: PPUSH
4261: LD_VAR 0 3
4265: PPUSH
4266: LD_INT 6
4268: PPUSH
4269: CALL_OW 309
4273: IFFALSE 4279
// begin enable ( 05 ) ;
4275: LD_INT 5
4277: ENABLE_MARKED
// disable ;
4278: DISABLE
// end ;
4279: PPOPN 3
4281: END
// var observed ; every 0 0$0.5 marked 05 do var tmp , tmp1 , tmp2 ;
4282: GO 4284
4284: DISABLE
4285: LD_INT 0
4287: PPUSH
4288: PPUSH
4289: PPUSH
// begin if debug then
4290: LD_EXP 44
4294: IFFALSE 4303
// msg ( siberitovka dopadla kam mela ) ;
4296: LD_STRING siberitovka dopadla kam mela
4298: PPUSH
4299: CALL_OW 100
// setareamapshow ( target , 0 ) ;
4303: LD_INT 6
4305: PPUSH
4306: LD_INT 0
4308: PPUSH
4309: CALL_OW 424
// setareamapshow ( radar_post , 0 ) ;
4313: LD_INT 12
4315: PPUSH
4316: LD_INT 0
4318: PPUSH
4319: CALL_OW 424
// if filterunitsinarea ( radar_post , [ [ f_weapon , us_radar ] ] ) then
4323: LD_INT 12
4325: PPUSH
4326: LD_INT 34
4328: PUSH
4329: LD_INT 11
4331: PUSH
4332: EMPTY
4333: LIST
4334: LIST
4335: PUSH
4336: EMPTY
4337: LIST
4338: PPUSH
4339: CALL_OW 70
4343: IFFALSE 4362
// begin observed = true ;
4345: LD_ADDR_LOC 4
4349: PUSH
4350: LD_INT 1
4352: ST_TO_ADDR
// changemissionobjectives ( M3a ) ;
4353: LD_STRING M3a
4355: PPUSH
4356: CALL_OW 337
// end else
4360: GO 4377
// begin observed = false ;
4362: LD_ADDR_LOC 4
4366: PUSH
4367: LD_INT 0
4369: ST_TO_ADDR
// changemissionobjectives ( M3b ) ;
4370: LD_STRING M3b
4372: PPUSH
4373: CALL_OW 337
// end ; wait ( 0 0$5 ) ;
4377: LD_INT 175
4379: PPUSH
4380: CALL_OW 67
// dialogueon ;
4384: CALL_OW 6
// if isok ( huck ) then
4388: LD_EXP 54
4392: PPUSH
4393: CALL_OW 302
4397: IFFALSE 4485
// begin say ( huck , D8-Huck-1 ) ;
4399: LD_EXP 54
4403: PPUSH
4404: LD_STRING D8-Huck-1
4406: PPUSH
4407: CALL_OW 88
// say ( john , D8-JMM-1 ) ;
4411: LD_EXP 52
4415: PPUSH
4416: LD_STRING D8-JMM-1
4418: PPUSH
4419: CALL_OW 88
// say ( huck , D8-Huck-2 ) ;
4423: LD_EXP 54
4427: PPUSH
4428: LD_STRING D8-Huck-2
4430: PPUSH
4431: CALL_OW 88
// say ( john , D8-JMM-2 ) ;
4435: LD_EXP 52
4439: PPUSH
4440: LD_STRING D8-JMM-2
4442: PPUSH
4443: CALL_OW 88
// say ( huck , D8-Huck-3 ) ;
4447: LD_EXP 54
4451: PPUSH
4452: LD_STRING D8-Huck-3
4454: PPUSH
4455: CALL_OW 88
// say ( john , D8-JMM-3 ) ;
4459: LD_EXP 52
4463: PPUSH
4464: LD_STRING D8-JMM-3
4466: PPUSH
4467: CALL_OW 88
// say ( huck , D8-Huck-4 ) ;
4471: LD_EXP 54
4475: PPUSH
4476: LD_STRING D8-Huck-4
4478: PPUSH
4479: CALL_OW 88
// end else
4483: GO 4820
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_class , class_scientistic ] ] ) diff john ;
4485: LD_ADDR_VAR 0 1
4489: PUSH
4490: LD_INT 22
4492: PUSH
4493: LD_EXP 1
4497: PUSH
4498: EMPTY
4499: LIST
4500: LIST
4501: PUSH
4502: LD_INT 25
4504: PUSH
4505: LD_INT 4
4507: PUSH
4508: EMPTY
4509: LIST
4510: LIST
4511: PUSH
4512: EMPTY
4513: LIST
4514: LIST
4515: PPUSH
4516: CALL_OW 69
4520: PUSH
4521: LD_EXP 52
4525: DIFF
4526: ST_TO_ADDR
// if not tmp then
4527: LD_VAR 0 1
4531: NOT
4532: IFFALSE 4663
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
4534: LD_ADDR_VAR 0 1
4538: PUSH
4539: LD_INT 22
4541: PUSH
4542: LD_EXP 1
4546: PUSH
4547: EMPTY
4548: LIST
4549: LIST
4550: PUSH
4551: LD_INT 50
4553: PUSH
4554: EMPTY
4555: LIST
4556: PUSH
4557: LD_INT 3
4559: PUSH
4560: LD_INT 23
4562: PUSH
4563: LD_INT 0
4565: PUSH
4566: EMPTY
4567: LIST
4568: LIST
4569: PUSH
4570: EMPTY
4571: LIST
4572: LIST
4573: PUSH
4574: EMPTY
4575: LIST
4576: LIST
4577: LIST
4578: PPUSH
4579: CALL_OW 69
4583: PUSH
4584: LD_EXP 52
4588: DIFF
4589: ST_TO_ADDR
// tmp1 = [ ] ;
4590: LD_ADDR_VAR 0 2
4594: PUSH
4595: EMPTY
4596: ST_TO_ADDR
// for tmp2 in tmp do
4597: LD_ADDR_VAR 0 3
4601: PUSH
4602: LD_VAR 0 1
4606: PUSH
4607: FOR_IN
4608: IFFALSE 4639
// tmp1 = tmp1 ^ [ getskill ( tmp2 , skill_scientistic ) ] ;
4610: LD_ADDR_VAR 0 2
4614: PUSH
4615: LD_VAR 0 2
4619: PUSH
4620: LD_VAR 0 3
4624: PPUSH
4625: LD_INT 4
4627: PPUSH
4628: CALL_OW 259
4632: PUSH
4633: EMPTY
4634: LIST
4635: ADD
4636: ST_TO_ADDR
4637: GO 4607
4639: POP
4640: POP
// tmp = bestfromlistbylist ( tmp , tmp1 ) ;
4641: LD_ADDR_VAR 0 1
4645: PUSH
4646: LD_VAR 0 1
4650: PPUSH
4651: LD_VAR 0 2
4655: PPUSH
4656: CALL_OW 79
4660: ST_TO_ADDR
// end else
4661: GO 4677
// tmp = tmp [ 1 ] ;
4663: LD_ADDR_VAR 0 1
4667: PUSH
4668: LD_VAR 0 1
4672: PUSH
4673: LD_INT 1
4675: ARRAY
4676: ST_TO_ADDR
// if tmp and getsex ( tmp ) = sex_male then
4677: LD_VAR 0 1
4681: PUSH
4682: LD_VAR 0 1
4686: PPUSH
4687: CALL_OW 258
4691: PUSH
4692: LD_INT 1
4694: EQUAL
4695: AND
4696: IFFALSE 4760
// begin say ( tmp , D8-Sci1-2 ) ;
4698: LD_VAR 0 1
4702: PPUSH
4703: LD_STRING D8-Sci1-2
4705: PPUSH
4706: CALL_OW 88
// say ( john , D8-JMM-2 ) ;
4710: LD_EXP 52
4714: PPUSH
4715: LD_STRING D8-JMM-2
4717: PPUSH
4718: CALL_OW 88
// say ( tmp , D8-Sci1-3 ) ;
4722: LD_VAR 0 1
4726: PPUSH
4727: LD_STRING D8-Sci1-3
4729: PPUSH
4730: CALL_OW 88
// say ( john , D8-JMM-3 ) ;
4734: LD_EXP 52
4738: PPUSH
4739: LD_STRING D8-JMM-3
4741: PPUSH
4742: CALL_OW 88
// say ( tmp , D8-Sci1-4 ) ;
4746: LD_VAR 0 1
4750: PPUSH
4751: LD_STRING D8-Sci1-4
4753: PPUSH
4754: CALL_OW 88
// end else
4758: GO 4820
// begin say ( tmp , D8-FSci1-2 ) ;
4760: LD_VAR 0 1
4764: PPUSH
4765: LD_STRING D8-FSci1-2
4767: PPUSH
4768: CALL_OW 88
// say ( john , D8-JMM-2 ) ;
4772: LD_EXP 52
4776: PPUSH
4777: LD_STRING D8-JMM-2
4779: PPUSH
4780: CALL_OW 88
// say ( tmp , D8-FSci1-3 ) ;
4784: LD_VAR 0 1
4788: PPUSH
4789: LD_STRING D8-FSci1-3
4791: PPUSH
4792: CALL_OW 88
// say ( john , D8-JMM-3 ) ;
4796: LD_EXP 52
4800: PPUSH
4801: LD_STRING D8-JMM-3
4803: PPUSH
4804: CALL_OW 88
// say ( tmp , D8-FSci1-4 ) ;
4808: LD_VAR 0 1
4812: PPUSH
4813: LD_STRING D8-FSci1-4
4815: PPUSH
4816: CALL_OW 88
// end ; end ; dialogueoff ;
4820: CALL_OW 7
// setareamapshow ( measure , 1 ) ;
4824: LD_INT 7
4826: PPUSH
4827: LD_INT 1
4829: PPUSH
4830: CALL_OW 424
// centernowonxy ( 118 , 12 ) ;
4834: LD_INT 118
4836: PPUSH
4837: LD_INT 12
4839: PPUSH
4840: CALL_OW 86
// changemissionobjectives ( M5 ) ;
4844: LD_STRING M5
4846: PPUSH
4847: CALL_OW 337
// vedecmeri_ = [ ] ;
4851: LD_ADDR_LOC 5
4855: PUSH
4856: EMPTY
4857: ST_TO_ADDR
// labs = [ ] ;
4858: LD_ADDR_LOC 6
4862: PUSH
4863: EMPTY
4864: ST_TO_ADDR
// tmp = filterallunits ( [ [ f_side , am ] , [ f_or , [ f_btype , b_lab_half ] , [ f_btype , b_lab_full ] ] ] ) ;
4865: LD_ADDR_VAR 0 1
4869: PUSH
4870: LD_INT 22
4872: PUSH
4873: LD_EXP 1
4877: PUSH
4878: EMPTY
4879: LIST
4880: LIST
4881: PUSH
4882: LD_INT 2
4884: PUSH
4885: LD_INT 30
4887: PUSH
4888: LD_INT 7
4890: PUSH
4891: EMPTY
4892: LIST
4893: LIST
4894: PUSH
4895: LD_INT 30
4897: PUSH
4898: LD_INT 8
4900: PUSH
4901: EMPTY
4902: LIST
4903: LIST
4904: PUSH
4905: EMPTY
4906: LIST
4907: LIST
4908: LIST
4909: PUSH
4910: EMPTY
4911: LIST
4912: LIST
4913: PPUSH
4914: CALL_OW 69
4918: ST_TO_ADDR
// for tmp1 in tmp do
4919: LD_ADDR_VAR 0 2
4923: PUSH
4924: LD_VAR 0 1
4928: PUSH
4929: FOR_IN
4930: IFFALSE 4989
// if ( getlabkind ( tmp1 , 1 ) = b_lab_siberium ) or ( getlabkind ( tmp1 , 2 ) = b_lab_siberium ) then
4932: LD_VAR 0 2
4936: PPUSH
4937: LD_INT 1
4939: PPUSH
4940: CALL_OW 268
4944: PUSH
4945: LD_INT 11
4947: EQUAL
4948: PUSH
4949: LD_VAR 0 2
4953: PPUSH
4954: LD_INT 2
4956: PPUSH
4957: CALL_OW 268
4961: PUSH
4962: LD_INT 11
4964: EQUAL
4965: OR
4966: IFFALSE 4987
// labs = labs ^ [ tmp1 ] ;
4968: LD_ADDR_LOC 6
4972: PUSH
4973: LD_LOC 6
4977: PUSH
4978: LD_VAR 0 2
4982: PUSH
4983: EMPTY
4984: LIST
4985: ADD
4986: ST_TO_ADDR
4987: GO 4929
4989: POP
4990: POP
// enable ( 07 ) ;
4991: LD_INT 7
4993: ENABLE_MARKED
// enable ( 14 ) ;
4994: LD_INT 14
4996: ENABLE_MARKED
// end ;
4997: PPOPN 3
4999: END
// every 0 0$0.51 marked 06 do
5000: GO 5002
5002: DISABLE
// begin dialogueon ;
5003: CALL_OW 6
// say ( john , D9a-JMM-1 ) ;
5007: LD_EXP 52
5011: PPUSH
5012: LD_STRING D9a-JMM-1
5014: PPUSH
5015: CALL_OW 88
// dialogueoff ;
5019: CALL_OW 7
// end ;
5023: END
// var vedecmeri_ ; function vedecmeri ; begin
5024: LD_INT 0
5026: PPUSH
// vedecmeri_ = unitfilter ( vedecmeri_ , [ [ f_alive ] , [ f_class , class_scientistic ] ] ) union filterunitsinarea ( measure , [ [ f_side , am ] , [ f_class , class_scientistic ] ] ) ;
5027: LD_ADDR_LOC 5
5031: PUSH
5032: LD_LOC 5
5036: PPUSH
5037: LD_INT 51
5039: PUSH
5040: EMPTY
5041: LIST
5042: PUSH
5043: LD_INT 25
5045: PUSH
5046: LD_INT 4
5048: PUSH
5049: EMPTY
5050: LIST
5051: LIST
5052: PUSH
5053: EMPTY
5054: LIST
5055: LIST
5056: PPUSH
5057: CALL_OW 72
5061: PUSH
5062: LD_INT 7
5064: PPUSH
5065: LD_INT 22
5067: PUSH
5068: LD_EXP 1
5072: PUSH
5073: EMPTY
5074: LIST
5075: LIST
5076: PUSH
5077: LD_INT 25
5079: PUSH
5080: LD_INT 4
5082: PUSH
5083: EMPTY
5084: LIST
5085: LIST
5086: PUSH
5087: EMPTY
5088: LIST
5089: LIST
5090: PPUSH
5091: CALL_OW 70
5095: UNION
5096: ST_TO_ADDR
// if not vedecmeri_ then
5097: LD_LOC 5
5101: NOT
5102: IFFALSE 5116
// setareamapshow ( measure , 1 ) else
5104: LD_INT 7
5106: PPUSH
5107: LD_INT 1
5109: PPUSH
5110: CALL_OW 424
5114: GO 5126
// setareamapshow ( measure , 0 ) ;
5116: LD_INT 7
5118: PPUSH
5119: LD_INT 0
5121: PPUSH
5122: CALL_OW 424
// result = vedecmeri_ ;
5126: LD_ADDR_VAR 0 1
5130: PUSH
5131: LD_LOC 5
5135: ST_TO_ADDR
// end ;
5136: LD_VAR 0 1
5140: RET
// var labs ; on buildingcomplete ( un ) marked 14 do if ( getside ( un ) = am ) and ( getbtype ( un ) in [ b_lab_half , b_lab_full ] ) and ( ( getlabkind ( un , 1 ) = b_lab_siberium ) or ( getlabkind ( un , 2 ) = b_lab_siberium ) ) then
5141: LD_VAR 0 1
5145: PPUSH
5146: CALL_OW 255
5150: PUSH
5151: LD_EXP 1
5155: EQUAL
5156: PUSH
5157: LD_VAR 0 1
5161: PPUSH
5162: CALL_OW 266
5166: PUSH
5167: LD_INT 7
5169: PUSH
5170: LD_INT 8
5172: PUSH
5173: EMPTY
5174: LIST
5175: LIST
5176: IN
5177: AND
5178: PUSH
5179: LD_VAR 0 1
5183: PPUSH
5184: LD_INT 1
5186: PPUSH
5187: CALL_OW 268
5191: PUSH
5192: LD_INT 11
5194: EQUAL
5195: PUSH
5196: LD_VAR 0 1
5200: PPUSH
5201: LD_INT 2
5203: PPUSH
5204: CALL_OW 268
5208: PUSH
5209: LD_INT 11
5211: EQUAL
5212: OR
5213: AND
5214: IFFALSE 5235
// labs = labs ^ [ un ] ;
5216: LD_ADDR_LOC 6
5220: PUSH
5221: LD_LOC 6
5225: PUSH
5226: LD_VAR 0 1
5230: PUSH
5231: EMPTY
5232: LIST
5233: ADD
5234: ST_TO_ADDR
5235: PPOPN 1
5237: END
// function isinunitex ( lst ) ; var tmp , tmp1 , tmp2 ; begin
5238: LD_INT 0
5240: PPUSH
5241: PPUSH
5242: PPUSH
5243: PPUSH
// tmp2 = [ ] ;
5244: LD_ADDR_VAR 0 5
5248: PUSH
5249: EMPTY
5250: ST_TO_ADDR
// for tmp in lst do
5251: LD_ADDR_VAR 0 3
5255: PUSH
5256: LD_VAR 0 1
5260: PUSH
5261: FOR_IN
5262: IFFALSE 5306
// begin tmp1 = isinunit ( tmp ) ;
5264: LD_ADDR_VAR 0 4
5268: PUSH
5269: LD_VAR 0 3
5273: PPUSH
5274: CALL_OW 310
5278: ST_TO_ADDR
// if tmp1 then
5279: LD_VAR 0 4
5283: IFFALSE 5304
// tmp2 = tmp2 ^ [ tmp1 ] ;
5285: LD_ADDR_VAR 0 5
5289: PUSH
5290: LD_VAR 0 5
5294: PUSH
5295: LD_VAR 0 4
5299: PUSH
5300: EMPTY
5301: LIST
5302: ADD
5303: ST_TO_ADDR
// end ;
5304: GO 5261
5306: POP
5307: POP
// result = tmp2 ;
5308: LD_ADDR_VAR 0 2
5312: PUSH
5313: LD_VAR 0 5
5317: ST_TO_ADDR
// end ;
5318: LD_VAR 0 2
5322: RET
// every 0 0$0.6 trigger vedecmeri marked 07 do var tmp , tmp1 , tmp2 ;
5323: CALL 5024 0 0
5327: IFFALSE 5634
5329: GO 5331
5331: DISABLE
5332: LD_INT 0
5334: PPUSH
5335: PPUSH
5336: PPUSH
// begin wait ( 0 0$1 ) ;
5337: LD_INT 35
5339: PPUSH
5340: CALL_OW 67
// setareamapshow ( measure , 0 ) ;
5344: LD_INT 7
5346: PPUSH
5347: LD_INT 0
5349: PPUSH
5350: CALL_OW 424
// while not ( isinunitex ( vedecmeri ) isect labs ) do
5354: CALL 5024 0 0
5358: PPUSH
5359: CALL 5238 0 1
5363: PUSH
5364: LD_LOC 6
5368: ISECT
5369: NOT
5370: IFFALSE 5381
// wait ( 0 0$1 ) ;
5372: LD_INT 35
5374: PPUSH
5375: CALL_OW 67
5379: GO 5354
// dialogueon ;
5381: CALL_OW 6
// say ( john , D9b-JMM-1 ) ;
5385: LD_EXP 52
5389: PPUSH
5390: LD_STRING D9b-JMM-1
5392: PPUSH
5393: CALL_OW 88
// sayradio ( powell , D9b-Pow-1 ) ;
5397: LD_EXP 53
5401: PPUSH
5402: LD_STRING D9b-Pow-1
5404: PPUSH
5405: CALL_OW 94
// say ( john , D9b-JMM-2 ) ;
5409: LD_EXP 52
5413: PPUSH
5414: LD_STRING D9b-JMM-2
5416: PPUSH
5417: CALL_OW 88
// sayradio ( powell , D9b-Pow-2 ) ;
5421: LD_EXP 53
5425: PPUSH
5426: LD_STRING D9b-Pow-2
5428: PPUSH
5429: CALL_OW 94
// say ( john , D9b-JMM-3 ) ;
5433: LD_EXP 52
5437: PPUSH
5438: LD_STRING D9b-JMM-3
5440: PPUSH
5441: CALL_OW 88
// sayradio ( powell , D9b-Pow-3 ) ;
5445: LD_EXP 53
5449: PPUSH
5450: LD_STRING D9b-Pow-3
5452: PPUSH
5453: CALL_OW 94
// dialogueoff ;
5457: CALL_OW 7
// if burlakutekl then
5461: LD_EXP 49
5465: IFFALSE 5480
// addmedal ( Burlak , - 1 ) else
5467: LD_STRING Burlak
5469: PPUSH
5470: LD_INT 1
5472: NEG
5473: PPUSH
5474: CALL_OW 101
5478: GO 5490
// addmedal ( Burlak , 1 ) ;
5480: LD_STRING Burlak
5482: PPUSH
5483: LD_INT 1
5485: PPUSH
5486: CALL_OW 101
// if isdead ( huck ) then
5490: LD_EXP 54
5494: PPUSH
5495: CALL_OW 301
5499: IFFALSE 5514
// addmedal ( Stevens , - 1 ) else
5501: LD_STRING Stevens
5503: PPUSH
5504: LD_INT 1
5506: NEG
5507: PPUSH
5508: CALL_OW 101
5512: GO 5524
// addmedal ( Stevens , 1 ) ;
5514: LD_STRING Stevens
5516: PPUSH
5517: LD_INT 1
5519: PPUSH
5520: CALL_OW 101
// if observed then
5524: LD_LOC 4
5528: IFFALSE 5542
// addmedal ( Observation , 1 ) else
5530: LD_STRING Observation
5532: PPUSH
5533: LD_INT 1
5535: PPUSH
5536: CALL_OW 101
5540: GO 5553
// addmedal ( Observation , - 1 ) ;
5542: LD_STRING Observation
5544: PPUSH
5545: LD_INT 1
5547: NEG
5548: PPUSH
5549: CALL_OW 101
// givemedals ( MAIN ) ;
5553: LD_STRING MAIN
5555: PPUSH
5556: CALL_OW 102
// rewardpeople ( filterallunits ( [ [ f_alive ] , [ f_side , am ] , [ f_type , unit_human ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff seznamposil ) ;
5560: LD_INT 51
5562: PUSH
5563: EMPTY
5564: LIST
5565: PUSH
5566: LD_INT 22
5568: PUSH
5569: LD_EXP 1
5573: PUSH
5574: EMPTY
5575: LIST
5576: LIST
5577: PUSH
5578: LD_INT 21
5580: PUSH
5581: LD_INT 1
5583: PUSH
5584: EMPTY
5585: LIST
5586: LIST
5587: PUSH
5588: LD_INT 3
5590: PUSH
5591: LD_INT 23
5593: PUSH
5594: LD_INT 0
5596: PUSH
5597: EMPTY
5598: LIST
5599: LIST
5600: PUSH
5601: EMPTY
5602: LIST
5603: LIST
5604: PUSH
5605: EMPTY
5606: LIST
5607: LIST
5608: LIST
5609: LIST
5610: PPUSH
5611: CALL_OW 69
5615: PUSH
5616: LD_EXP 50
5620: DIFF
5621: PPUSH
5622: CALL_OW 43
// saveitall ;
5626: CALL 6963 0 0
// youwin ;
5630: CALL_OW 103
// end ; end_of_file
5634: PPOPN 3
5636: END
// export john , powell , huck ; var bobby , cyrus , lisa , cornel , frank , brown , lucy , glad , denis , yamoko , gary ; var bobbyloc , cyrusloc , lisaloc , cornelloc , frankloc , brownloc , lucyloc , gladloc , denisloc , yamokoloc , garyloc ; export function prepare_americans ; var vip ; begin
5637: LD_INT 0
5639: PPUSH
5640: PPUSH
// uc_nation = nation_american ;
5641: LD_ADDR_OWVAR 21
5645: PUSH
5646: LD_INT 1
5648: ST_TO_ADDR
// uc_side = am ;
5649: LD_ADDR_OWVAR 20
5653: PUSH
5654: LD_EXP 1
5658: ST_TO_ADDR
// if testcharacters ( JMM ) and checkcharacterset ( JMM ) then
5659: LD_STRING JMM
5661: PPUSH
5662: CALL_OW 28
5666: PUSH
5667: LD_STRING JMM
5669: PPUSH
5670: CALL_OW 29
5674: AND
5675: IFFALSE 5695
// john = createcharacterwithclass ( JMM , class_soldier ) else
5677: LD_ADDR_EXP 52
5681: PUSH
5682: LD_STRING JMM
5684: PPUSH
5685: LD_INT 1
5687: PPUSH
5688: CALL_OW 35
5692: ST_TO_ADDR
5693: GO 5708
// buildquery ( neny JMM , [ OK ] ) ;
5695: LD_STRING neny JMM
5697: PPUSH
5698: LD_STRING OK
5700: PUSH
5701: EMPTY
5702: LIST
5703: PPUSH
5704: CALL_OW 99
// powell = newcharacter ( Powell ) ;
5708: LD_ADDR_EXP 53
5712: PUSH
5713: LD_STRING Powell
5715: PPUSH
5716: CALL_OW 25
5720: ST_TO_ADDR
// if not powell then
5721: LD_EXP 53
5725: NOT
5726: IFFALSE 5741
// buildquery ( neny Powell , [ OK ] ) ;
5728: LD_STRING neny Powell
5730: PPUSH
5731: LD_STRING OK
5733: PUSH
5734: EMPTY
5735: LIST
5736: PPUSH
5737: CALL_OW 99
// huck = newcharacter ( Stevens ) ;
5741: LD_ADDR_EXP 54
5745: PUSH
5746: LD_STRING Stevens
5748: PPUSH
5749: CALL_OW 25
5753: ST_TO_ADDR
// if not huck then
5754: LD_EXP 54
5758: NOT
5759: IFFALSE 5774
// buildquery ( neny Stevens , [ OK ] ) ;
5761: LD_STRING neny Stevens
5763: PPUSH
5764: LD_STRING OK
5766: PUSH
5767: EMPTY
5768: LIST
5769: PPUSH
5770: CALL_OW 99
// americani = [ ] ;
5774: LD_ADDR_EXP 48
5778: PUSH
5779: EMPTY
5780: ST_TO_ADDR
// if testcharacters ( otherwithJMM ) then
5781: LD_STRING otherwithJMM
5783: PPUSH
5784: CALL_OW 28
5788: IFFALSE 5816
// if checkcharacterset ( otherwithJMM ) then
5790: LD_STRING otherwithJMM
5792: PPUSH
5793: CALL_OW 29
5797: IFFALSE 5814
// americani = createcharacterset ( otherwithJMM ) else
5799: LD_ADDR_EXP 48
5803: PUSH
5804: LD_STRING otherwithJMM
5806: PPUSH
5807: CALL_OW 31
5811: ST_TO_ADDR
5812: GO 5814
// else
5814: GO 5829
// buildquery ( neny otherwithJMM , [ OK ] ) ;
5816: LD_STRING neny otherwithJMM
5818: PPUSH
5819: LD_STRING OK
5821: PUSH
5822: EMPTY
5823: LIST
5824: PPUSH
5825: CALL_OW 99
// vip = [ ] ;
5829: LD_ADDR_VAR 0 2
5833: PUSH
5834: EMPTY
5835: ST_TO_ADDR
// if not testcharacters ( Bobby ) or not checkcharacterset ( Bobby ) then
5836: LD_STRING Bobby
5838: PPUSH
5839: CALL_OW 28
5843: NOT
5844: PUSH
5845: LD_STRING Bobby
5847: PPUSH
5848: CALL_OW 29
5852: NOT
5853: OR
5854: IFFALSE 5866
// bobby = 0 else
5856: LD_ADDR_LOC 7
5860: PUSH
5861: LD_INT 0
5863: ST_TO_ADDR
5864: GO 5935
// begin bobbyloc = loadvariable ( BobbyLoc , - 1 ) ;
5866: LD_ADDR_LOC 18
5870: PUSH
5871: LD_STRING BobbyLoc
5873: PPUSH
5874: LD_INT 1
5876: NEG
5877: PPUSH
5878: CALL_OW 30
5882: ST_TO_ADDR
// if bobbyloc = 6 then
5883: LD_LOC 18
5887: PUSH
5888: LD_INT 6
5890: EQUAL
5891: IFFALSE 5927
// begin bobby = createcharacter ( Bobby ) ;
5893: LD_ADDR_LOC 7
5897: PUSH
5898: LD_STRING Bobby
5900: PPUSH
5901: CALL_OW 34
5905: ST_TO_ADDR
// vip = vip ^ [ bobby ] ;
5906: LD_ADDR_VAR 0 2
5910: PUSH
5911: LD_VAR 0 2
5915: PUSH
5916: LD_LOC 7
5920: PUSH
5921: EMPTY
5922: LIST
5923: ADD
5924: ST_TO_ADDR
// end else
5925: GO 5935
// bobby = 0 ;
5927: LD_ADDR_LOC 7
5931: PUSH
5932: LD_INT 0
5934: ST_TO_ADDR
// end ; if not testcharacters ( Cyrus ) or not checkcharacterset ( Cyrus ) then
5935: LD_STRING Cyrus
5937: PPUSH
5938: CALL_OW 28
5942: NOT
5943: PUSH
5944: LD_STRING Cyrus
5946: PPUSH
5947: CALL_OW 29
5951: NOT
5952: OR
5953: IFFALSE 5965
// cyrus = 0 else
5955: LD_ADDR_LOC 8
5959: PUSH
5960: LD_INT 0
5962: ST_TO_ADDR
5963: GO 6034
// begin cyrusloc = loadvariable ( CyrusLoc , - 1 ) ;
5965: LD_ADDR_LOC 19
5969: PUSH
5970: LD_STRING CyrusLoc
5972: PPUSH
5973: LD_INT 1
5975: NEG
5976: PPUSH
5977: CALL_OW 30
5981: ST_TO_ADDR
// if cyrusloc = 6 then
5982: LD_LOC 19
5986: PUSH
5987: LD_INT 6
5989: EQUAL
5990: IFFALSE 6026
// begin cyrus = createcharacter ( Cyrus ) ;
5992: LD_ADDR_LOC 8
5996: PUSH
5997: LD_STRING Cyrus
5999: PPUSH
6000: CALL_OW 34
6004: ST_TO_ADDR
// vip = vip ^ [ cyrus ] ;
6005: LD_ADDR_VAR 0 2
6009: PUSH
6010: LD_VAR 0 2
6014: PUSH
6015: LD_LOC 8
6019: PUSH
6020: EMPTY
6021: LIST
6022: ADD
6023: ST_TO_ADDR
// end else
6024: GO 6034
// cyrus = 0 ;
6026: LD_ADDR_LOC 8
6030: PUSH
6031: LD_INT 0
6033: ST_TO_ADDR
// end ; if not testcharacters ( Lisa ) or not checkcharacterset ( Lisa ) then
6034: LD_STRING Lisa
6036: PPUSH
6037: CALL_OW 28
6041: NOT
6042: PUSH
6043: LD_STRING Lisa
6045: PPUSH
6046: CALL_OW 29
6050: NOT
6051: OR
6052: IFFALSE 6064
// lisa = 0 else
6054: LD_ADDR_LOC 9
6058: PUSH
6059: LD_INT 0
6061: ST_TO_ADDR
6062: GO 6133
// begin lisaloc = loadvariable ( LisaLoc , - 1 ) ;
6064: LD_ADDR_LOC 20
6068: PUSH
6069: LD_STRING LisaLoc
6071: PPUSH
6072: LD_INT 1
6074: NEG
6075: PPUSH
6076: CALL_OW 30
6080: ST_TO_ADDR
// if lisaloc = 6 then
6081: LD_LOC 20
6085: PUSH
6086: LD_INT 6
6088: EQUAL
6089: IFFALSE 6125
// begin lisa = createcharacter ( Lisa ) ;
6091: LD_ADDR_LOC 9
6095: PUSH
6096: LD_STRING Lisa
6098: PPUSH
6099: CALL_OW 34
6103: ST_TO_ADDR
// vip = vip ^ [ lisa ] ;
6104: LD_ADDR_VAR 0 2
6108: PUSH
6109: LD_VAR 0 2
6113: PUSH
6114: LD_LOC 9
6118: PUSH
6119: EMPTY
6120: LIST
6121: ADD
6122: ST_TO_ADDR
// end else
6123: GO 6133
// lisa = 0 ;
6125: LD_ADDR_LOC 9
6129: PUSH
6130: LD_INT 0
6132: ST_TO_ADDR
// end ; if not testcharacters ( Cornell ) or not checkcharacterset ( Cornell ) then
6133: LD_STRING Cornell
6135: PPUSH
6136: CALL_OW 28
6140: NOT
6141: PUSH
6142: LD_STRING Cornell
6144: PPUSH
6145: CALL_OW 29
6149: NOT
6150: OR
6151: IFFALSE 6163
// cornel = 0 else
6153: LD_ADDR_LOC 10
6157: PUSH
6158: LD_INT 0
6160: ST_TO_ADDR
6161: GO 6232
// begin cornelloc = loadvariable ( CornellLoc , - 1 ) ;
6163: LD_ADDR_LOC 21
6167: PUSH
6168: LD_STRING CornellLoc
6170: PPUSH
6171: LD_INT 1
6173: NEG
6174: PPUSH
6175: CALL_OW 30
6179: ST_TO_ADDR
// if cornelloc = 6 then
6180: LD_LOC 21
6184: PUSH
6185: LD_INT 6
6187: EQUAL
6188: IFFALSE 6224
// begin cornel = createcharacter ( Cornell ) ;
6190: LD_ADDR_LOC 10
6194: PUSH
6195: LD_STRING Cornell
6197: PPUSH
6198: CALL_OW 34
6202: ST_TO_ADDR
// vip = vip ^ [ cornel ] ;
6203: LD_ADDR_VAR 0 2
6207: PUSH
6208: LD_VAR 0 2
6212: PUSH
6213: LD_LOC 10
6217: PUSH
6218: EMPTY
6219: LIST
6220: ADD
6221: ST_TO_ADDR
// end else
6222: GO 6232
// cornel = 0 ;
6224: LD_ADDR_LOC 10
6228: PUSH
6229: LD_INT 0
6231: ST_TO_ADDR
// end ; if not testcharacters ( Frank ) or not checkcharacterset ( Frank ) then
6232: LD_STRING Frank
6234: PPUSH
6235: CALL_OW 28
6239: NOT
6240: PUSH
6241: LD_STRING Frank
6243: PPUSH
6244: CALL_OW 29
6248: NOT
6249: OR
6250: IFFALSE 6262
// frank = 0 else
6252: LD_ADDR_LOC 11
6256: PUSH
6257: LD_INT 0
6259: ST_TO_ADDR
6260: GO 6331
// begin frankloc = loadvariable ( FrankLoc , - 1 ) ;
6262: LD_ADDR_LOC 22
6266: PUSH
6267: LD_STRING FrankLoc
6269: PPUSH
6270: LD_INT 1
6272: NEG
6273: PPUSH
6274: CALL_OW 30
6278: ST_TO_ADDR
// if frankloc = 6 then
6279: LD_LOC 22
6283: PUSH
6284: LD_INT 6
6286: EQUAL
6287: IFFALSE 6323
// begin frank = createcharacter ( Frank ) ;
6289: LD_ADDR_LOC 11
6293: PUSH
6294: LD_STRING Frank
6296: PPUSH
6297: CALL_OW 34
6301: ST_TO_ADDR
// vip = vip ^ [ frank ] ;
6302: LD_ADDR_VAR 0 2
6306: PUSH
6307: LD_VAR 0 2
6311: PUSH
6312: LD_LOC 11
6316: PUSH
6317: EMPTY
6318: LIST
6319: ADD
6320: ST_TO_ADDR
// end else
6321: GO 6331
// frank = 0 ;
6323: LD_ADDR_LOC 11
6327: PUSH
6328: LD_INT 0
6330: ST_TO_ADDR
// end ; if not testcharacters ( Brown ) or not checkcharacterset ( Brown ) then
6331: LD_STRING Brown
6333: PPUSH
6334: CALL_OW 28
6338: NOT
6339: PUSH
6340: LD_STRING Brown
6342: PPUSH
6343: CALL_OW 29
6347: NOT
6348: OR
6349: IFFALSE 6361
// brown = 0 else
6351: LD_ADDR_LOC 12
6355: PUSH
6356: LD_INT 0
6358: ST_TO_ADDR
6359: GO 6430
// begin brownloc = loadvariable ( BrownLoc , - 1 ) ;
6361: LD_ADDR_LOC 23
6365: PUSH
6366: LD_STRING BrownLoc
6368: PPUSH
6369: LD_INT 1
6371: NEG
6372: PPUSH
6373: CALL_OW 30
6377: ST_TO_ADDR
// if brownloc = 6 then
6378: LD_LOC 23
6382: PUSH
6383: LD_INT 6
6385: EQUAL
6386: IFFALSE 6422
// begin brown = createcharacter ( Brown ) ;
6388: LD_ADDR_LOC 12
6392: PUSH
6393: LD_STRING Brown
6395: PPUSH
6396: CALL_OW 34
6400: ST_TO_ADDR
// vip = vip ^ [ brown ] ;
6401: LD_ADDR_VAR 0 2
6405: PUSH
6406: LD_VAR 0 2
6410: PUSH
6411: LD_LOC 12
6415: PUSH
6416: EMPTY
6417: LIST
6418: ADD
6419: ST_TO_ADDR
// end else
6420: GO 6430
// brown = 0 ;
6422: LD_ADDR_LOC 12
6426: PUSH
6427: LD_INT 0
6429: ST_TO_ADDR
// end ; if not testcharacters ( Donaldson ) or not checkcharacterset ( Donaldson ) then
6430: LD_STRING Donaldson
6432: PPUSH
6433: CALL_OW 28
6437: NOT
6438: PUSH
6439: LD_STRING Donaldson
6441: PPUSH
6442: CALL_OW 29
6446: NOT
6447: OR
6448: IFFALSE 6460
// lucy = 0 else
6450: LD_ADDR_LOC 13
6454: PUSH
6455: LD_INT 0
6457: ST_TO_ADDR
6458: GO 6529
// begin lucyloc = loadvariable ( DonaldsonLoc , - 1 ) ;
6460: LD_ADDR_LOC 24
6464: PUSH
6465: LD_STRING DonaldsonLoc
6467: PPUSH
6468: LD_INT 1
6470: NEG
6471: PPUSH
6472: CALL_OW 30
6476: ST_TO_ADDR
// if lucyloc = 6 then
6477: LD_LOC 24
6481: PUSH
6482: LD_INT 6
6484: EQUAL
6485: IFFALSE 6521
// begin lucy = createcharacter ( Donaldson ) ;
6487: LD_ADDR_LOC 13
6491: PUSH
6492: LD_STRING Donaldson
6494: PPUSH
6495: CALL_OW 34
6499: ST_TO_ADDR
// vip = vip ^ [ lucy ] ;
6500: LD_ADDR_VAR 0 2
6504: PUSH
6505: LD_VAR 0 2
6509: PUSH
6510: LD_LOC 13
6514: PUSH
6515: EMPTY
6516: LIST
6517: ADD
6518: ST_TO_ADDR
// end else
6519: GO 6529
// lucy = 0 ;
6521: LD_ADDR_LOC 13
6525: PUSH
6526: LD_INT 0
6528: ST_TO_ADDR
// end ; if not testcharacters ( Gladstone ) or not checkcharacterset ( Gladstone ) then
6529: LD_STRING Gladstone
6531: PPUSH
6532: CALL_OW 28
6536: NOT
6537: PUSH
6538: LD_STRING Gladstone
6540: PPUSH
6541: CALL_OW 29
6545: NOT
6546: OR
6547: IFFALSE 6559
// glad = 0 else
6549: LD_ADDR_LOC 14
6553: PUSH
6554: LD_INT 0
6556: ST_TO_ADDR
6557: GO 6628
// begin gladloc = loadvariable ( GladstoneLoc , - 1 ) ;
6559: LD_ADDR_LOC 25
6563: PUSH
6564: LD_STRING GladstoneLoc
6566: PPUSH
6567: LD_INT 1
6569: NEG
6570: PPUSH
6571: CALL_OW 30
6575: ST_TO_ADDR
// if gladloc = 6 then
6576: LD_LOC 25
6580: PUSH
6581: LD_INT 6
6583: EQUAL
6584: IFFALSE 6620
// begin glad = createcharacter ( Gladstone ) ;
6586: LD_ADDR_LOC 14
6590: PUSH
6591: LD_STRING Gladstone
6593: PPUSH
6594: CALL_OW 34
6598: ST_TO_ADDR
// vip = vip ^ [ glad ] ;
6599: LD_ADDR_VAR 0 2
6603: PUSH
6604: LD_VAR 0 2
6608: PUSH
6609: LD_LOC 14
6613: PUSH
6614: EMPTY
6615: LIST
6616: ADD
6617: ST_TO_ADDR
// end else
6618: GO 6628
// glad = 0 ;
6620: LD_ADDR_LOC 14
6624: PUSH
6625: LD_INT 0
6627: ST_TO_ADDR
// end ; if not testcharacters ( Denis ) or not checkcharacterset ( Denis ) then
6628: LD_STRING Denis
6630: PPUSH
6631: CALL_OW 28
6635: NOT
6636: PUSH
6637: LD_STRING Denis
6639: PPUSH
6640: CALL_OW 29
6644: NOT
6645: OR
6646: IFFALSE 6658
// denis = 0 else
6648: LD_ADDR_LOC 15
6652: PUSH
6653: LD_INT 0
6655: ST_TO_ADDR
6656: GO 6727
// begin denisloc = loadvariable ( DenisLoc , - 1 ) ;
6658: LD_ADDR_LOC 26
6662: PUSH
6663: LD_STRING DenisLoc
6665: PPUSH
6666: LD_INT 1
6668: NEG
6669: PPUSH
6670: CALL_OW 30
6674: ST_TO_ADDR
// if denisloc = 6 then
6675: LD_LOC 26
6679: PUSH
6680: LD_INT 6
6682: EQUAL
6683: IFFALSE 6719
// begin denis = createcharacter ( Denis ) ;
6685: LD_ADDR_LOC 15
6689: PUSH
6690: LD_STRING Denis
6692: PPUSH
6693: CALL_OW 34
6697: ST_TO_ADDR
// vip = vip ^ [ denis ] ;
6698: LD_ADDR_VAR 0 2
6702: PUSH
6703: LD_VAR 0 2
6707: PUSH
6708: LD_LOC 15
6712: PUSH
6713: EMPTY
6714: LIST
6715: ADD
6716: ST_TO_ADDR
// end else
6717: GO 6727
// denis = 0 ;
6719: LD_ADDR_LOC 15
6723: PUSH
6724: LD_INT 0
6726: ST_TO_ADDR
// end ; if not frank then
6727: LD_LOC 11
6731: NOT
6732: IFFALSE 6835
// if not testcharacters ( Yamoko ) or not checkcharacterset ( Yamoko ) then
6734: LD_STRING Yamoko
6736: PPUSH
6737: CALL_OW 28
6741: NOT
6742: PUSH
6743: LD_STRING Yamoko
6745: PPUSH
6746: CALL_OW 29
6750: NOT
6751: OR
6752: IFFALSE 6764
// yamoko = 0 else
6754: LD_ADDR_LOC 16
6758: PUSH
6759: LD_INT 0
6761: ST_TO_ADDR
6762: GO 6833
// begin yamokoloc = loadvariable ( YamokoLoc , - 1 ) ;
6764: LD_ADDR_LOC 27
6768: PUSH
6769: LD_STRING YamokoLoc
6771: PPUSH
6772: LD_INT 1
6774: NEG
6775: PPUSH
6776: CALL_OW 30
6780: ST_TO_ADDR
// if yamokoloc = 6 then
6781: LD_LOC 27
6785: PUSH
6786: LD_INT 6
6788: EQUAL
6789: IFFALSE 6825
// begin yamoko = createcharacter ( Yamoko ) ;
6791: LD_ADDR_LOC 16
6795: PUSH
6796: LD_STRING Yamoko
6798: PPUSH
6799: CALL_OW 34
6803: ST_TO_ADDR
// vip = vip ^ [ yamoko ] ;
6804: LD_ADDR_VAR 0 2
6808: PUSH
6809: LD_VAR 0 2
6813: PUSH
6814: LD_LOC 16
6818: PUSH
6819: EMPTY
6820: LIST
6821: ADD
6822: ST_TO_ADDR
// end else
6823: GO 6833
// yamoko = 0 ;
6825: LD_ADDR_LOC 16
6829: PUSH
6830: LD_INT 0
6832: ST_TO_ADDR
// end else
6833: GO 6843
// yamoko = 0 ;
6835: LD_ADDR_LOC 16
6839: PUSH
6840: LD_INT 0
6842: ST_TO_ADDR
// if not testcharacters ( Gary ) or not checkcharacterset ( Gary ) then
6843: LD_STRING Gary
6845: PPUSH
6846: CALL_OW 28
6850: NOT
6851: PUSH
6852: LD_STRING Gary
6854: PPUSH
6855: CALL_OW 29
6859: NOT
6860: OR
6861: IFFALSE 6873
// gary = 0 else
6863: LD_ADDR_LOC 17
6867: PUSH
6868: LD_INT 0
6870: ST_TO_ADDR
6871: GO 6942
// begin garyloc = loadvariable ( GaryLoc , - 1 ) ;
6873: LD_ADDR_LOC 28
6877: PUSH
6878: LD_STRING GaryLoc
6880: PPUSH
6881: LD_INT 1
6883: NEG
6884: PPUSH
6885: CALL_OW 30
6889: ST_TO_ADDR
// if garyloc = 6 then
6890: LD_LOC 28
6894: PUSH
6895: LD_INT 6
6897: EQUAL
6898: IFFALSE 6934
// begin gary = createcharacter ( Gary ) ;
6900: LD_ADDR_LOC 17
6904: PUSH
6905: LD_STRING Gary
6907: PPUSH
6908: CALL_OW 34
6912: ST_TO_ADDR
// vip = vip ^ [ gary ] ;
6913: LD_ADDR_VAR 0 2
6917: PUSH
6918: LD_VAR 0 2
6922: PUSH
6923: LD_LOC 17
6927: PUSH
6928: EMPTY
6929: LIST
6930: ADD
6931: ST_TO_ADDR
// end else
6932: GO 6942
// gary = 0 ;
6934: LD_ADDR_LOC 17
6938: PUSH
6939: LD_INT 0
6941: ST_TO_ADDR
// end ; americani = vip ^ americani ;
6942: LD_ADDR_EXP 48
6946: PUSH
6947: LD_VAR 0 2
6951: PUSH
6952: LD_EXP 48
6956: ADD
6957: ST_TO_ADDR
// end ;
6958: LD_VAR 0 1
6962: RET
// export function saveitall ; begin
6963: LD_INT 0
6965: PPUSH
// savecharacters ( john , JMM ) ;
6966: LD_EXP 52
6970: PPUSH
6971: LD_STRING JMM
6973: PPUSH
6974: CALL_OW 38
// savecharacters ( huck , Stevens ) ;
6978: LD_EXP 54
6982: PPUSH
6983: LD_STRING Stevens
6985: PPUSH
6986: CALL_OW 38
// savecharacters ( burlak , Burlak ) ;
6990: LD_EXP 4
6994: PPUSH
6995: LD_STRING Burlak
6997: PPUSH
6998: CALL_OW 38
// if bobby then
7002: LD_LOC 7
7006: IFFALSE 7053
// begin savecharacters ( bobby , Bobby ) ;
7008: LD_LOC 7
7012: PPUSH
7013: LD_STRING Bobby
7015: PPUSH
7016: CALL_OW 38
// if islive ( bobby ) then
7020: LD_LOC 7
7024: PPUSH
7025: CALL_OW 300
7029: IFFALSE 7043
// savevariable ( 6 , BobbyLoc ) else
7031: LD_INT 6
7033: PPUSH
7034: LD_STRING BobbyLoc
7036: PPUSH
7037: CALL_OW 39
7041: GO 7053
// savevariable ( 0 , BobbyLoc ) ;
7043: LD_INT 0
7045: PPUSH
7046: LD_STRING BobbyLoc
7048: PPUSH
7049: CALL_OW 39
// end ; if cyrus then
7053: LD_LOC 8
7057: IFFALSE 7104
// begin savecharacters ( cyrus , Cyrus ) ;
7059: LD_LOC 8
7063: PPUSH
7064: LD_STRING Cyrus
7066: PPUSH
7067: CALL_OW 38
// if islive ( cyrus ) then
7071: LD_LOC 8
7075: PPUSH
7076: CALL_OW 300
7080: IFFALSE 7094
// savevariable ( 6 , CyrusLoc ) else
7082: LD_INT 6
7084: PPUSH
7085: LD_STRING CyrusLoc
7087: PPUSH
7088: CALL_OW 39
7092: GO 7104
// savevariable ( 0 , CyrusLoc ) ;
7094: LD_INT 0
7096: PPUSH
7097: LD_STRING CyrusLoc
7099: PPUSH
7100: CALL_OW 39
// end ; if lisa then
7104: LD_LOC 9
7108: IFFALSE 7155
// begin savecharacters ( lisa , Lisa ) ;
7110: LD_LOC 9
7114: PPUSH
7115: LD_STRING Lisa
7117: PPUSH
7118: CALL_OW 38
// if islive ( lisa ) then
7122: LD_LOC 9
7126: PPUSH
7127: CALL_OW 300
7131: IFFALSE 7145
// savevariable ( 6 , LisaLoc ) else
7133: LD_INT 6
7135: PPUSH
7136: LD_STRING LisaLoc
7138: PPUSH
7139: CALL_OW 39
7143: GO 7155
// savevariable ( 0 , LisaLoc ) ;
7145: LD_INT 0
7147: PPUSH
7148: LD_STRING LisaLoc
7150: PPUSH
7151: CALL_OW 39
// end ; if cornel then
7155: LD_LOC 10
7159: IFFALSE 7206
// begin savecharacters ( cornel , Cornell ) ;
7161: LD_LOC 10
7165: PPUSH
7166: LD_STRING Cornell
7168: PPUSH
7169: CALL_OW 38
// if islive ( cornel ) then
7173: LD_LOC 10
7177: PPUSH
7178: CALL_OW 300
7182: IFFALSE 7196
// savevariable ( 6 , CornellLoc ) else
7184: LD_INT 6
7186: PPUSH
7187: LD_STRING CornellLoc
7189: PPUSH
7190: CALL_OW 39
7194: GO 7206
// savevariable ( 0 , CornellLoc ) ;
7196: LD_INT 0
7198: PPUSH
7199: LD_STRING CornellLoc
7201: PPUSH
7202: CALL_OW 39
// end ; if frank then
7206: LD_LOC 11
7210: IFFALSE 7257
// begin savecharacters ( frank , Frank ) ;
7212: LD_LOC 11
7216: PPUSH
7217: LD_STRING Frank
7219: PPUSH
7220: CALL_OW 38
// if islive ( frank ) then
7224: LD_LOC 11
7228: PPUSH
7229: CALL_OW 300
7233: IFFALSE 7247
// savevariable ( 6 , FrankLoc ) else
7235: LD_INT 6
7237: PPUSH
7238: LD_STRING FrankLoc
7240: PPUSH
7241: CALL_OW 39
7245: GO 7257
// savevariable ( 0 , FrankLoc ) ;
7247: LD_INT 0
7249: PPUSH
7250: LD_STRING FrankLoc
7252: PPUSH
7253: CALL_OW 39
// end ; if brown then
7257: LD_LOC 12
7261: IFFALSE 7308
// begin savecharacters ( brown , Brown ) ;
7263: LD_LOC 12
7267: PPUSH
7268: LD_STRING Brown
7270: PPUSH
7271: CALL_OW 38
// if islive ( brown ) then
7275: LD_LOC 12
7279: PPUSH
7280: CALL_OW 300
7284: IFFALSE 7298
// savevariable ( 6 , BrownLoc ) else
7286: LD_INT 6
7288: PPUSH
7289: LD_STRING BrownLoc
7291: PPUSH
7292: CALL_OW 39
7296: GO 7308
// savevariable ( 0 , BrownLoc ) ;
7298: LD_INT 0
7300: PPUSH
7301: LD_STRING BrownLoc
7303: PPUSH
7304: CALL_OW 39
// end ; if lucy then
7308: LD_LOC 13
7312: IFFALSE 7359
// begin savecharacters ( lucy , Donaldson ) ;
7314: LD_LOC 13
7318: PPUSH
7319: LD_STRING Donaldson
7321: PPUSH
7322: CALL_OW 38
// if islive ( lucy ) then
7326: LD_LOC 13
7330: PPUSH
7331: CALL_OW 300
7335: IFFALSE 7349
// savevariable ( 6 , DonaldsonLoc ) else
7337: LD_INT 6
7339: PPUSH
7340: LD_STRING DonaldsonLoc
7342: PPUSH
7343: CALL_OW 39
7347: GO 7359
// savevariable ( 0 , DonaldsonLoc ) ;
7349: LD_INT 0
7351: PPUSH
7352: LD_STRING DonaldsonLoc
7354: PPUSH
7355: CALL_OW 39
// end ; if glad then
7359: LD_LOC 14
7363: IFFALSE 7410
// begin savecharacters ( glad , Gladstone ) ;
7365: LD_LOC 14
7369: PPUSH
7370: LD_STRING Gladstone
7372: PPUSH
7373: CALL_OW 38
// if islive ( glad ) then
7377: LD_LOC 14
7381: PPUSH
7382: CALL_OW 300
7386: IFFALSE 7400
// savevariable ( 6 , GladstoneLoc ) else
7388: LD_INT 6
7390: PPUSH
7391: LD_STRING GladstoneLoc
7393: PPUSH
7394: CALL_OW 39
7398: GO 7410
// savevariable ( 0 , GladstoneLoc ) ;
7400: LD_INT 0
7402: PPUSH
7403: LD_STRING GladstoneLoc
7405: PPUSH
7406: CALL_OW 39
// end ; if denis then
7410: LD_LOC 15
7414: IFFALSE 7461
// begin savecharacters ( denis , Denis ) ;
7416: LD_LOC 15
7420: PPUSH
7421: LD_STRING Denis
7423: PPUSH
7424: CALL_OW 38
// if islive ( denis ) then
7428: LD_LOC 15
7432: PPUSH
7433: CALL_OW 300
7437: IFFALSE 7451
// savevariable ( 6 , DenisLoc ) else
7439: LD_INT 6
7441: PPUSH
7442: LD_STRING DenisLoc
7444: PPUSH
7445: CALL_OW 39
7449: GO 7461
// savevariable ( 0 , DenisLoc ) ;
7451: LD_INT 0
7453: PPUSH
7454: LD_STRING DenisLoc
7456: PPUSH
7457: CALL_OW 39
// end ; if yamoko then
7461: LD_LOC 16
7465: IFFALSE 7512
// begin savecharacters ( yamoko , Yamoko ) ;
7467: LD_LOC 16
7471: PPUSH
7472: LD_STRING Yamoko
7474: PPUSH
7475: CALL_OW 38
// if islive ( yamoko ) then
7479: LD_LOC 16
7483: PPUSH
7484: CALL_OW 300
7488: IFFALSE 7502
// savevariable ( 6 , YamokoLoc ) else
7490: LD_INT 6
7492: PPUSH
7493: LD_STRING YamokoLoc
7495: PPUSH
7496: CALL_OW 39
7500: GO 7512
// savevariable ( 0 , YamokoLoc ) ;
7502: LD_INT 0
7504: PPUSH
7505: LD_STRING YamokoLoc
7507: PPUSH
7508: CALL_OW 39
// end ; if gary then
7512: LD_LOC 17
7516: IFFALSE 7563
// begin savecharacters ( gary , Gary ) ;
7518: LD_LOC 17
7522: PPUSH
7523: LD_STRING Gary
7525: PPUSH
7526: CALL_OW 38
// if islive ( gary ) then
7530: LD_LOC 17
7534: PPUSH
7535: CALL_OW 300
7539: IFFALSE 7553
// savevariable ( 6 , GaryLoc ) else
7541: LD_INT 6
7543: PPUSH
7544: LD_STRING GaryLoc
7546: PPUSH
7547: CALL_OW 39
7551: GO 7563
// savevariable ( 0 , GaryLoc ) ;
7553: LD_INT 0
7555: PPUSH
7556: LD_STRING GaryLoc
7558: PPUSH
7559: CALL_OW 39
// end ; savecharacters ( ( filterallunits ( [ [ f_side , am ] , [ f_alive ] , [ f_type , unit_human ] ] ) diff ( [ john , lucy , bobby , cyrus , lisa , cornel , frank , brown , glad , denis , yamoko , gary , huck ] ^ seznamposil ) ) , otherwithJMM ) ;
7563: LD_INT 22
7565: PUSH
7566: LD_EXP 1
7570: PUSH
7571: EMPTY
7572: LIST
7573: LIST
7574: PUSH
7575: LD_INT 51
7577: PUSH
7578: EMPTY
7579: LIST
7580: PUSH
7581: LD_INT 21
7583: PUSH
7584: LD_INT 1
7586: PUSH
7587: EMPTY
7588: LIST
7589: LIST
7590: PUSH
7591: EMPTY
7592: LIST
7593: LIST
7594: LIST
7595: PPUSH
7596: CALL_OW 69
7600: PUSH
7601: LD_EXP 52
7605: PUSH
7606: LD_LOC 13
7610: PUSH
7611: LD_LOC 7
7615: PUSH
7616: LD_LOC 8
7620: PUSH
7621: LD_LOC 9
7625: PUSH
7626: LD_LOC 10
7630: PUSH
7631: LD_LOC 11
7635: PUSH
7636: LD_LOC 12
7640: PUSH
7641: LD_LOC 14
7645: PUSH
7646: LD_LOC 15
7650: PUSH
7651: LD_LOC 16
7655: PUSH
7656: LD_LOC 17
7660: PUSH
7661: LD_EXP 54
7665: PUSH
7666: EMPTY
7667: LIST
7668: LIST
7669: LIST
7670: LIST
7671: LIST
7672: LIST
7673: LIST
7674: LIST
7675: LIST
7676: LIST
7677: LIST
7678: LIST
7679: LIST
7680: PUSH
7681: LD_EXP 50
7685: ADD
7686: DIFF
7687: PPUSH
7688: LD_STRING otherwithJMM
7690: PPUSH
7691: CALL_OW 38
// end ; end_of_file
7695: LD_VAR 0 1
7699: RET
// var arabatt , regid , attid , north_dep_cnt , south_dep_cnt ; export arabsci , arsci_cipl ; every 10 10$0 do var tmp , tmp1 ;
7700: GO 7702
7702: DISABLE
7703: LD_INT 0
7705: PPUSH
7706: PPUSH
// begin wait ( delay1 ) ;
7707: LD_EXP 45
7711: PPUSH
7712: CALL_OW 67
// uc_nation = nation_arabian ;
7716: LD_ADDR_OWVAR 21
7720: PUSH
7721: LD_INT 2
7723: ST_TO_ADDR
// uc_side = ar ;
7724: LD_ADDR_OWVAR 20
7728: PUSH
7729: LD_EXP 3
7733: ST_TO_ADDR
// vc_control = control_manual ;
7734: LD_ADDR_OWVAR 38
7738: PUSH
7739: LD_INT 1
7741: ST_TO_ADDR
// vc_engine = engine_siberite ;
7742: LD_ADDR_OWVAR 39
7746: PUSH
7747: LD_INT 3
7749: ST_TO_ADDR
// vc_chassis = arv0_ch ;
7750: LD_ADDR_OWVAR 37
7754: PUSH
7755: LD_EXP 11
7759: ST_TO_ADDR
// vc_weapon = arv0_wp ;
7760: LD_ADDR_OWVAR 40
7764: PUSH
7765: LD_EXP 12
7769: ST_TO_ADDR
// tmp = createvehicle ;
7770: LD_ADDR_VAR 0 1
7774: PUSH
7775: CALL_OW 45
7779: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
7780: LD_VAR 0 1
7784: PPUSH
7785: LD_INT 5
7787: PPUSH
7788: CALL_OW 233
// placeunitarea ( tmp , cestajih , false ) ;
7792: LD_VAR 0 1
7796: PPUSH
7797: LD_INT 1
7799: PPUSH
7800: LD_INT 0
7802: PPUSH
7803: CALL_OW 49
// preparemechanic ( sex_male , arv0_sk ) ;
7807: LD_INT 1
7809: PPUSH
7810: LD_EXP 13
7814: PPUSH
7815: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
7819: CALL_OW 44
7823: PPUSH
7824: LD_VAR 0 1
7828: PPUSH
7829: CALL_OW 52
// tmp1 = [ tmp ] ;
7833: LD_ADDR_VAR 0 2
7837: PUSH
7838: LD_VAR 0 1
7842: PUSH
7843: EMPTY
7844: LIST
7845: ST_TO_ADDR
// vc_chassis = arv1_ch ;
7846: LD_ADDR_OWVAR 37
7850: PUSH
7851: LD_EXP 14
7855: ST_TO_ADDR
// vc_weapon = arv1_wp ;
7856: LD_ADDR_OWVAR 40
7860: PUSH
7861: LD_EXP 15
7865: ST_TO_ADDR
// tmp = createvehicle ;
7866: LD_ADDR_VAR 0 1
7870: PUSH
7871: CALL_OW 45
7875: ST_TO_ADDR
// setdir ( tmp , 0 ) ;
7876: LD_VAR 0 1
7880: PPUSH
7881: LD_INT 0
7883: PPUSH
7884: CALL_OW 233
// placeunitarea ( tmp , cestajih , false ) ;
7888: LD_VAR 0 1
7892: PPUSH
7893: LD_INT 1
7895: PPUSH
7896: LD_INT 0
7898: PPUSH
7899: CALL_OW 49
// preparemechanic ( sex_male , arv1_sk ) ;
7903: LD_INT 1
7905: PPUSH
7906: LD_EXP 16
7910: PPUSH
7911: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
7915: CALL_OW 44
7919: PPUSH
7920: LD_VAR 0 1
7924: PPUSH
7925: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
7929: LD_ADDR_VAR 0 2
7933: PUSH
7934: LD_VAR 0 2
7938: PUSH
7939: LD_VAR 0 1
7943: PUSH
7944: EMPTY
7945: LIST
7946: ADD
7947: ST_TO_ADDR
// vc_chassis = arv2_ch ;
7948: LD_ADDR_OWVAR 37
7952: PUSH
7953: LD_EXP 17
7957: ST_TO_ADDR
// vc_weapon = arv2_wp ;
7958: LD_ADDR_OWVAR 40
7962: PUSH
7963: LD_EXP 18
7967: ST_TO_ADDR
// tmp = createvehicle ;
7968: LD_ADDR_VAR 0 1
7972: PUSH
7973: CALL_OW 45
7977: ST_TO_ADDR
// setdir ( tmp , 0 ) ;
7978: LD_VAR 0 1
7982: PPUSH
7983: LD_INT 0
7985: PPUSH
7986: CALL_OW 233
// placeunitarea ( tmp , cestajih , false ) ;
7990: LD_VAR 0 1
7994: PPUSH
7995: LD_INT 1
7997: PPUSH
7998: LD_INT 0
8000: PPUSH
8001: CALL_OW 49
// preparemechanic ( sex_male , arv2_sk ) ;
8005: LD_INT 1
8007: PPUSH
8008: LD_EXP 19
8012: PPUSH
8013: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
8017: CALL_OW 44
8021: PPUSH
8022: LD_VAR 0 1
8026: PPUSH
8027: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
8031: LD_ADDR_VAR 0 2
8035: PUSH
8036: LD_VAR 0 2
8040: PUSH
8041: LD_VAR 0 1
8045: PUSH
8046: EMPTY
8047: LIST
8048: ADD
8049: ST_TO_ADDR
// if debug then
8050: LD_EXP 44
8054: IFFALSE 8063
// msg ( prvni utok (kryci) ) ;
8056: LD_STRING prvni utok (kryci)
8058: PPUSH
8059: CALL_OW 100
// regid = mcregistry ( ar , [ [ mc_reg_area_to_guard , area4reg ] , [ mc_reg_refresh_time , 11 ] , mc_reg_ignore_fog ] ) ;
8063: LD_ADDR_LOC 30
8067: PUSH
8068: LD_EXP 3
8072: PPUSH
8073: LD_INT 2
8075: PUSH
8076: LD_INT 15
8078: PUSH
8079: EMPTY
8080: LIST
8081: LIST
8082: PUSH
8083: LD_INT 1
8085: PUSH
8086: LD_INT 11
8088: PUSH
8089: EMPTY
8090: LIST
8091: LIST
8092: PUSH
8093: LD_INT 7
8095: PUSH
8096: EMPTY
8097: LIST
8098: LIST
8099: LIST
8100: PPUSH
8101: CALL_OW 399
8105: ST_TO_ADDR
// attid = mcattack ( 100 , regid , tmp1 , [ mc_no_stop ] ) ;
8106: LD_ADDR_LOC 31
8110: PUSH
8111: LD_INT 100
8113: PPUSH
8114: LD_LOC 30
8118: PPUSH
8119: LD_VAR 0 2
8123: PPUSH
8124: LD_INT 10
8126: PUSH
8127: EMPTY
8128: LIST
8129: PPUSH
8130: CALL_OW 402
8134: ST_TO_ADDR
// wait ( 0 0$2 ) ;
8135: LD_INT 70
8137: PPUSH
8138: CALL_OW 67
// preparescientist ( sex_female , arsc0_sk ) ;
8142: LD_INT 2
8144: PPUSH
8145: LD_EXP 10
8149: PPUSH
8150: CALL_OW 384
// arabsci = createhuman ;
8154: LD_ADDR_EXP 55
8158: PUSH
8159: CALL_OW 44
8163: ST_TO_ADDR
// arsci_cipl = false ;
8164: LD_ADDR_EXP 56
8168: PUSH
8169: LD_INT 0
8171: ST_TO_ADDR
// placeunitxyr ( arabsci , 58 , 2 , 2 , false ) ;
8172: LD_EXP 55
8176: PPUSH
8177: LD_INT 58
8179: PPUSH
8180: LD_INT 2
8182: PPUSH
8183: LD_INT 2
8185: PPUSH
8186: LD_INT 0
8188: PPUSH
8189: CALL_OW 50
// comcontaminate ( arabsci , 23 , 37 ) ;
8193: LD_EXP 55
8197: PPUSH
8198: LD_INT 23
8200: PPUSH
8201: LD_INT 37
8203: PPUSH
8204: CALL_OW 158
// wait ( 0 0$3 ) ;
8208: LD_INT 105
8210: PPUSH
8211: CALL_OW 67
// arabatt = tmp1 ;
8215: LD_ADDR_LOC 29
8219: PUSH
8220: LD_VAR 0 2
8224: ST_TO_ADDR
// north_dep_cnt = false ;
8225: LD_ADDR_LOC 32
8229: PUSH
8230: LD_INT 0
8232: ST_TO_ADDR
// south_dep_cnt = false ;
8233: LD_ADDR_LOC 33
8237: PUSH
8238: LD_INT 0
8240: ST_TO_ADDR
// enabled = 0 ;
8241: LD_ADDR_LOC 34
8245: PUSH
8246: LD_INT 0
8248: ST_TO_ADDR
// enable ( 01 ) ;
8249: LD_INT 1
8251: ENABLE_MARKED
// while not arsci_cipl and not north_dep_cnt do
8252: LD_EXP 56
8256: NOT
8257: PUSH
8258: LD_LOC 32
8262: NOT
8263: AND
8264: IFFALSE 8275
// wait ( 0 0$1 ) ;
8266: LD_INT 35
8268: PPUSH
8269: CALL_OW 67
8273: GO 8252
// killmc ( attid ) ;
8275: LD_LOC 31
8279: PPUSH
8280: CALL_OW 387
// commovexy ( arabatt ^ [ arabsci ] , 58 , 1 ) ;
8284: LD_LOC 29
8288: PUSH
8289: LD_EXP 55
8293: PUSH
8294: EMPTY
8295: LIST
8296: ADD
8297: PPUSH
8298: LD_INT 58
8300: PPUSH
8301: LD_INT 1
8303: PPUSH
8304: CALL_OW 111
// enabled = 1 ;
8308: LD_ADDR_LOC 34
8312: PUSH
8313: LD_INT 1
8315: ST_TO_ADDR
// end ;
8316: PPOPN 2
8318: END
// export sibsev , marked_08 ; on sibdepositcontaminated ( un , x , y ) do var tmp , tmp1 , tmp2 ;
8319: LD_INT 0
8321: PPUSH
8322: PPUSH
8323: PPUSH
// if ( x = 23 ) and ( y = 37 ) then
8324: LD_VAR 0 2
8328: PUSH
8329: LD_INT 23
8331: EQUAL
8332: PUSH
8333: LD_VAR 0 3
8337: PUSH
8338: LD_INT 37
8340: EQUAL
8341: AND
8342: IFFALSE 8362
// begin sibsev = true ;
8344: LD_ADDR_EXP 57
8348: PUSH
8349: LD_INT 1
8351: ST_TO_ADDR
// north_dep_cnt = true ;
8352: LD_ADDR_LOC 32
8356: PUSH
8357: LD_INT 1
8359: ST_TO_ADDR
// end else
8360: GO 8373
// begin enable ( 08 ) ;
8362: LD_INT 8
8364: ENABLE_MARKED
// south_dep_cnt = true ;
8365: LD_ADDR_LOC 33
8369: PUSH
8370: LD_INT 1
8372: ST_TO_ADDR
// end ;
8373: PPOPN 6
8375: END
// on siberitedepositdestroyed ( x , y ) marked 08 do var tmp , tmp1 , tmp2 ;
8376: LD_INT 0
8378: PPUSH
8379: PPUSH
8380: PPUSH
// if ( x = 91 ) and ( y = 111 ) and not getlistofresourcesinarea ( northdep ) then
8381: LD_VAR 0 1
8385: PUSH
8386: LD_INT 91
8388: EQUAL
8389: PUSH
8390: LD_VAR 0 2
8394: PUSH
8395: LD_INT 111
8397: EQUAL
8398: AND
8399: PUSH
8400: LD_INT 13
8402: PPUSH
8403: CALL_OW 442
8407: NOT
8408: AND
8409: IFFALSE 8720
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
8411: LD_ADDR_VAR 0 3
8415: PUSH
8416: LD_INT 22
8418: PUSH
8419: LD_EXP 1
8423: PUSH
8424: EMPTY
8425: LIST
8426: LIST
8427: PUSH
8428: LD_INT 2
8430: PUSH
8431: LD_INT 30
8433: PUSH
8434: LD_INT 0
8436: PUSH
8437: EMPTY
8438: LIST
8439: LIST
8440: PUSH
8441: LD_INT 30
8443: PUSH
8444: LD_INT 1
8446: PUSH
8447: EMPTY
8448: LIST
8449: LIST
8450: PUSH
8451: EMPTY
8452: LIST
8453: LIST
8454: LIST
8455: PUSH
8456: EMPTY
8457: LIST
8458: LIST
8459: PPUSH
8460: CALL_OW 69
8464: ST_TO_ADDR
// tmp2 = 0 ;
8465: LD_ADDR_VAR 0 5
8469: PUSH
8470: LD_INT 0
8472: ST_TO_ADDR
// for tmp1 in tmp do
8473: LD_ADDR_VAR 0 4
8477: PUSH
8478: LD_VAR 0 3
8482: PUSH
8483: FOR_IN
8484: IFFALSE 8517
// tmp2 = tmp2 + getresourcetype ( getbase ( tmp1 ) , mat_siberit ) ;
8486: LD_ADDR_VAR 0 5
8490: PUSH
8491: LD_VAR 0 5
8495: PUSH
8496: LD_VAR 0 4
8500: PPUSH
8501: CALL_OW 274
8505: PPUSH
8506: LD_INT 3
8508: PPUSH
8509: CALL_OW 275
8513: PLUS
8514: ST_TO_ADDR
8515: GO 8483
8517: POP
8518: POP
// tmp = filterallunits ( [ [ f_side , am ] , [ f_or , [ f_class , class_engineer ] , [ f_weapon , us_cargo_bay ] ] ] ) ;
8519: LD_ADDR_VAR 0 3
8523: PUSH
8524: LD_INT 22
8526: PUSH
8527: LD_EXP 1
8531: PUSH
8532: EMPTY
8533: LIST
8534: LIST
8535: PUSH
8536: LD_INT 2
8538: PUSH
8539: LD_INT 25
8541: PUSH
8542: LD_INT 2
8544: PUSH
8545: EMPTY
8546: LIST
8547: LIST
8548: PUSH
8549: LD_INT 34
8551: PUSH
8552: LD_INT 12
8554: PUSH
8555: EMPTY
8556: LIST
8557: LIST
8558: PUSH
8559: EMPTY
8560: LIST
8561: LIST
8562: LIST
8563: PUSH
8564: EMPTY
8565: LIST
8566: LIST
8567: PPUSH
8568: CALL_OW 69
8572: ST_TO_ADDR
// tmp2 = tmp2 + getcargo ( tmp , mat_siberit ) ;
8573: LD_ADDR_VAR 0 5
8577: PUSH
8578: LD_VAR 0 5
8582: PUSH
8583: LD_VAR 0 3
8587: PPUSH
8588: LD_INT 3
8590: PPUSH
8591: CALL_OW 289
8595: PLUS
8596: ST_TO_ADDR
// tmp2 = tmp2 + getresourcearea ( celamapa , mat_siberit ) ;
8597: LD_ADDR_VAR 0 5
8601: PUSH
8602: LD_VAR 0 5
8606: PUSH
8607: LD_INT 8
8609: PPUSH
8610: LD_INT 3
8612: PPUSH
8613: CALL_OW 287
8617: PLUS
8618: ST_TO_ADDR
// tmp1 = 70 ;
8619: LD_ADDR_VAR 0 4
8623: PUSH
8624: LD_INT 70
8626: ST_TO_ADDR
// if filterallunits ( [ [ f_side , am ] , [ f_btype , b_ext_siberium ] ] ) then
8627: LD_INT 22
8629: PUSH
8630: LD_EXP 1
8634: PUSH
8635: EMPTY
8636: LIST
8637: LIST
8638: PUSH
8639: LD_INT 30
8641: PUSH
8642: LD_INT 21
8644: PUSH
8645: EMPTY
8646: LIST
8647: LIST
8648: PUSH
8649: EMPTY
8650: LIST
8651: LIST
8652: PPUSH
8653: CALL_OW 69
8657: IFFALSE 8673
// tmp1 = tmp1 - 10 ;
8659: LD_ADDR_VAR 0 4
8663: PUSH
8664: LD_VAR 0 4
8668: PUSH
8669: LD_INT 10
8671: MINUS
8672: ST_TO_ADDR
// if researched ( am , tech_sibfiss ) then
8673: LD_EXP 1
8677: PPUSH
8678: LD_INT 25
8680: PPUSH
8681: CALL_OW 325
8685: IFFALSE 8701
// tmp1 = tmp1 - 60 ;
8687: LD_ADDR_VAR 0 4
8691: PUSH
8692: LD_VAR 0 4
8696: PUSH
8697: LD_INT 60
8699: MINUS
8700: ST_TO_ADDR
// if tmp1 > tmp2 then
8701: LD_VAR 0 4
8705: PUSH
8706: LD_VAR 0 5
8710: GREATER
8711: IFFALSE 8720
// youlost ( siberite ) ;
8713: LD_STRING siberite
8715: PPUSH
8716: CALL_OW 104
// end ;
8720: PPOPN 5
8722: END
// var enabled ; every 0 0$0.43 marked 01 do var tmp , tmp1 ;
8723: GO 8725
8725: DISABLE
8726: LD_INT 0
8728: PPUSH
8729: PPUSH
// begin tmp = filterunitsinarea ( uniksever , [ [ f_side , ar ] ] ) ;
8730: LD_ADDR_VAR 0 1
8734: PUSH
8735: LD_INT 2
8737: PPUSH
8738: LD_INT 22
8740: PUSH
8741: LD_EXP 3
8745: PUSH
8746: EMPTY
8747: LIST
8748: LIST
8749: PUSH
8750: EMPTY
8751: LIST
8752: PPUSH
8753: CALL_OW 70
8757: ST_TO_ADDR
// if tmp then
8758: LD_VAR 0 1
8762: IFFALSE 8790
// for tmp1 in tmp do
8764: LD_ADDR_VAR 0 2
8768: PUSH
8769: LD_VAR 0 1
8773: PUSH
8774: FOR_IN
8775: IFFALSE 8788
// destroyunit ( tmp1 ) ;
8777: LD_VAR 0 2
8781: PPUSH
8782: CALL_OW 65
8786: GO 8774
8788: POP
8789: POP
// tmp = filterallunits ( [ [ f_side , ar ] , [ f_ok ] , [ f_or , [ f_occupied ] , [ f_type , unit_human ] ] ] ) ;
8790: LD_ADDR_VAR 0 1
8794: PUSH
8795: LD_INT 22
8797: PUSH
8798: LD_EXP 3
8802: PUSH
8803: EMPTY
8804: LIST
8805: LIST
8806: PUSH
8807: LD_INT 50
8809: PUSH
8810: EMPTY
8811: LIST
8812: PUSH
8813: LD_INT 2
8815: PUSH
8816: LD_INT 59
8818: PUSH
8819: EMPTY
8820: LIST
8821: PUSH
8822: LD_INT 21
8824: PUSH
8825: LD_INT 1
8827: PUSH
8828: EMPTY
8829: LIST
8830: LIST
8831: PUSH
8832: EMPTY
8833: LIST
8834: LIST
8835: LIST
8836: PUSH
8837: EMPTY
8838: LIST
8839: LIST
8840: LIST
8841: PPUSH
8842: CALL_OW 69
8846: ST_TO_ADDR
// if tmp and ( enabled < 600 ) then
8847: LD_VAR 0 1
8851: PUSH
8852: LD_LOC 34
8856: PUSH
8857: LD_INT 600
8859: LESS
8860: AND
8861: IFFALSE 8912
// begin enable ;
8863: ENABLE
// if enabled then
8864: LD_LOC 34
8868: IFFALSE 8884
// enabled = enabled + 1 ;
8870: LD_ADDR_LOC 34
8874: PUSH
8875: LD_LOC 34
8879: PUSH
8880: LD_INT 1
8882: PLUS
8883: ST_TO_ADDR
// if ( enabled mod 10 ) = 1 then
8884: LD_LOC 34
8888: PUSH
8889: LD_INT 10
8891: MOD
8892: PUSH
8893: LD_INT 1
8895: EQUAL
8896: IFFALSE 8910
// commovetoarea ( tmp , uniksever ) ;
8898: LD_VAR 0 1
8902: PPUSH
8903: LD_INT 2
8905: PPUSH
8906: CALL_OW 113
// end else
8910: GO 8947
// begin if tmp then
8912: LD_VAR 0 1
8916: IFFALSE 8944
// for tmp1 in tmp do
8918: LD_ADDR_VAR 0 2
8922: PUSH
8923: LD_VAR 0 1
8927: PUSH
8928: FOR_IN
8929: IFFALSE 8942
// destroyunit ( tmp1 ) ;
8931: LD_VAR 0 2
8935: PPUSH
8936: CALL_OW 65
8940: GO 8928
8942: POP
8943: POP
// enable ( 02 ) ;
8944: LD_INT 2
8946: ENABLE_MARKED
// end ; end ;
8947: PPOPN 2
8949: END
// var enabled2 ; every 0 0$0.43 marked 03 do var tmp , tmp1 ;
8950: GO 8952
8952: DISABLE
8953: LD_INT 0
8955: PPUSH
8956: PPUSH
// begin tmp = filterunitsinarea ( unikjih , [ [ f_side , ar ] ] ) ;
8957: LD_ADDR_VAR 0 1
8961: PUSH
8962: LD_INT 5
8964: PPUSH
8965: LD_INT 22
8967: PUSH
8968: LD_EXP 3
8972: PUSH
8973: EMPTY
8974: LIST
8975: LIST
8976: PUSH
8977: EMPTY
8978: LIST
8979: PPUSH
8980: CALL_OW 70
8984: ST_TO_ADDR
// if tmp then
8985: LD_VAR 0 1
8989: IFFALSE 9017
// for tmp1 in tmp do
8991: LD_ADDR_VAR 0 2
8995: PUSH
8996: LD_VAR 0 1
9000: PUSH
9001: FOR_IN
9002: IFFALSE 9015
// destroyunit ( tmp1 ) ;
9004: LD_VAR 0 2
9008: PPUSH
9009: CALL_OW 65
9013: GO 9001
9015: POP
9016: POP
// tmp = filterallunits ( [ [ f_side , ar ] , [ f_ok ] , [ f_or , [ f_occupied ] , [ f_type , unit_human ] ] ] ) ;
9017: LD_ADDR_VAR 0 1
9021: PUSH
9022: LD_INT 22
9024: PUSH
9025: LD_EXP 3
9029: PUSH
9030: EMPTY
9031: LIST
9032: LIST
9033: PUSH
9034: LD_INT 50
9036: PUSH
9037: EMPTY
9038: LIST
9039: PUSH
9040: LD_INT 2
9042: PUSH
9043: LD_INT 59
9045: PUSH
9046: EMPTY
9047: LIST
9048: PUSH
9049: LD_INT 21
9051: PUSH
9052: LD_INT 1
9054: PUSH
9055: EMPTY
9056: LIST
9057: LIST
9058: PUSH
9059: EMPTY
9060: LIST
9061: LIST
9062: LIST
9063: PUSH
9064: EMPTY
9065: LIST
9066: LIST
9067: LIST
9068: PPUSH
9069: CALL_OW 69
9073: ST_TO_ADDR
// if tmp and ( enabled < 600 ) then
9074: LD_VAR 0 1
9078: PUSH
9079: LD_LOC 34
9083: PUSH
9084: LD_INT 600
9086: LESS
9087: AND
9088: IFFALSE 9130
// begin enable ;
9090: ENABLE
// enabled2 = enabled2 + 1 ;
9091: LD_ADDR_LOC 35
9095: PUSH
9096: LD_LOC 35
9100: PUSH
9101: LD_INT 1
9103: PLUS
9104: ST_TO_ADDR
// if not ( enabled mod 12 ) then
9105: LD_LOC 34
9109: PUSH
9110: LD_INT 12
9112: MOD
9113: NOT
9114: IFFALSE 9128
// commovetoarea ( tmp , unikjih ) ;
9116: LD_VAR 0 1
9120: PPUSH
9121: LD_INT 5
9123: PPUSH
9124: CALL_OW 113
// end else
9128: GO 9162
// if tmp then
9130: LD_VAR 0 1
9134: IFFALSE 9162
// for tmp1 in tmp do
9136: LD_ADDR_VAR 0 2
9140: PUSH
9141: LD_VAR 0 1
9145: PUSH
9146: FOR_IN
9147: IFFALSE 9160
// destroyunit ( tmp1 ) ;
9149: LD_VAR 0 2
9153: PPUSH
9154: CALL_OW 65
9158: GO 9146
9160: POP
9161: POP
// end ;
9162: PPOPN 2
9164: END
// every 0 0$1 marked 02 do var tmp , tmp1 , tmp2 ;
9165: GO 9167
9167: DISABLE
9168: LD_INT 0
9170: PPUSH
9171: PPUSH
9172: PPUSH
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_class , class_scientistic ] ] ) diff john ;
9173: LD_ADDR_VAR 0 1
9177: PUSH
9178: LD_INT 22
9180: PUSH
9181: LD_EXP 1
9185: PUSH
9186: EMPTY
9187: LIST
9188: LIST
9189: PUSH
9190: LD_INT 25
9192: PUSH
9193: LD_INT 4
9195: PUSH
9196: EMPTY
9197: LIST
9198: LIST
9199: PUSH
9200: EMPTY
9201: LIST
9202: LIST
9203: PPUSH
9204: CALL_OW 69
9208: PUSH
9209: LD_EXP 52
9213: DIFF
9214: ST_TO_ADDR
// if not tmp then
9215: LD_VAR 0 1
9219: NOT
9220: IFFALSE 9351
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
9222: LD_ADDR_VAR 0 1
9226: PUSH
9227: LD_INT 22
9229: PUSH
9230: LD_EXP 1
9234: PUSH
9235: EMPTY
9236: LIST
9237: LIST
9238: PUSH
9239: LD_INT 50
9241: PUSH
9242: EMPTY
9243: LIST
9244: PUSH
9245: LD_INT 3
9247: PUSH
9248: LD_INT 23
9250: PUSH
9251: LD_INT 0
9253: PUSH
9254: EMPTY
9255: LIST
9256: LIST
9257: PUSH
9258: EMPTY
9259: LIST
9260: LIST
9261: PUSH
9262: EMPTY
9263: LIST
9264: LIST
9265: LIST
9266: PPUSH
9267: CALL_OW 69
9271: PUSH
9272: LD_EXP 52
9276: DIFF
9277: ST_TO_ADDR
// tmp1 = [ ] ;
9278: LD_ADDR_VAR 0 2
9282: PUSH
9283: EMPTY
9284: ST_TO_ADDR
// for tmp2 in tmp do
9285: LD_ADDR_VAR 0 3
9289: PUSH
9290: LD_VAR 0 1
9294: PUSH
9295: FOR_IN
9296: IFFALSE 9327
// tmp1 = tmp1 ^ [ getskill ( tmp2 , skill_scientistic ) ] ;
9298: LD_ADDR_VAR 0 2
9302: PUSH
9303: LD_VAR 0 2
9307: PUSH
9308: LD_VAR 0 3
9312: PPUSH
9313: LD_INT 4
9315: PPUSH
9316: CALL_OW 259
9320: PUSH
9321: EMPTY
9322: LIST
9323: ADD
9324: ST_TO_ADDR
9325: GO 9295
9327: POP
9328: POP
// tmp = bestfromlistbylist ( tmp , tmp1 ) ;
9329: LD_ADDR_VAR 0 1
9333: PUSH
9334: LD_VAR 0 1
9338: PPUSH
9339: LD_VAR 0 2
9343: PPUSH
9344: CALL_OW 79
9348: ST_TO_ADDR
// end else
9349: GO 9365
// tmp = tmp [ 1 ] ;
9351: LD_ADDR_VAR 0 1
9355: PUSH
9356: LD_VAR 0 1
9360: PUSH
9361: LD_INT 1
9363: ARRAY
9364: ST_TO_ADDR
// if tmp and north_dep_cnt then
9365: LD_VAR 0 1
9369: PUSH
9370: LD_LOC 32
9374: AND
9375: IFFALSE 9500
// begin dialogueon ;
9377: CALL_OW 6
// say ( tmp , D4-Sci1-1 ) ;
9381: LD_VAR 0 1
9385: PPUSH
9386: LD_STRING D4-Sci1-1
9388: PPUSH
9389: CALL_OW 88
// say ( john , D4-JMM-1 ) ;
9393: LD_EXP 52
9397: PPUSH
9398: LD_STRING D4-JMM-1
9400: PPUSH
9401: CALL_OW 88
// say ( tmp , D4-Sci1-2 ) ;
9405: LD_VAR 0 1
9409: PPUSH
9410: LD_STRING D4-Sci1-2
9412: PPUSH
9413: CALL_OW 88
// say ( john , D4-JMM-2 ) ;
9417: LD_EXP 52
9421: PPUSH
9422: LD_STRING D4-JMM-2
9424: PPUSH
9425: CALL_OW 88
// say ( tmp , D4-Sci1-3 ) ;
9429: LD_VAR 0 1
9433: PPUSH
9434: LD_STRING D4-Sci1-3
9436: PPUSH
9437: CALL_OW 88
// say ( john , D4-JMM-3 ) ;
9441: LD_EXP 52
9445: PPUSH
9446: LD_STRING D4-JMM-3
9448: PPUSH
9449: CALL_OW 88
// if getresourcevisibility ( 91 , 111 , am ) then
9453: LD_INT 91
9455: PPUSH
9456: LD_INT 111
9458: PPUSH
9459: LD_EXP 1
9463: PPUSH
9464: CALL_OW 440
9468: IFFALSE 9484
// say ( john , D4-JMM-3a ) else
9470: LD_EXP 52
9474: PPUSH
9475: LD_STRING D4-JMM-3a
9477: PPUSH
9478: CALL_OW 88
9482: GO 9496
// say ( john , D4-JMM-3b ) ;
9484: LD_EXP 52
9488: PPUSH
9489: LD_STRING D4-JMM-3b
9491: PPUSH
9492: CALL_OW 88
// dialogueoff ;
9496: CALL_OW 7
// end ; wait ( delay1 ) ;
9500: LD_EXP 45
9504: PPUSH
9505: CALL_OW 67
// uc_nation = nation_arabian ;
9509: LD_ADDR_OWVAR 21
9513: PUSH
9514: LD_INT 2
9516: ST_TO_ADDR
// uc_side = ar ;
9517: LD_ADDR_OWVAR 20
9521: PUSH
9522: LD_EXP 3
9526: ST_TO_ADDR
// vc_control = control_manual ;
9527: LD_ADDR_OWVAR 38
9531: PUSH
9532: LD_INT 1
9534: ST_TO_ADDR
// vc_engine = engine_siberite ;
9535: LD_ADDR_OWVAR 39
9539: PUSH
9540: LD_INT 3
9542: ST_TO_ADDR
// vc_chassis = arv0_ch ;
9543: LD_ADDR_OWVAR 37
9547: PUSH
9548: LD_EXP 11
9552: ST_TO_ADDR
// vc_weapon = arv0_wp ;
9553: LD_ADDR_OWVAR 40
9557: PUSH
9558: LD_EXP 12
9562: ST_TO_ADDR
// tmp = createvehicle ;
9563: LD_ADDR_VAR 0 1
9567: PUSH
9568: CALL_OW 45
9572: ST_TO_ADDR
// setdir ( tmp , 3 ) ;
9573: LD_VAR 0 1
9577: PPUSH
9578: LD_INT 3
9580: PPUSH
9581: CALL_OW 233
// placeunitarea ( tmp , cestasever , false ) ;
9585: LD_VAR 0 1
9589: PPUSH
9590: LD_INT 4
9592: PPUSH
9593: LD_INT 0
9595: PPUSH
9596: CALL_OW 49
// preparemechanic ( sex_male , arv0_sk ) ;
9600: LD_INT 1
9602: PPUSH
9603: LD_EXP 13
9607: PPUSH
9608: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
9612: CALL_OW 44
9616: PPUSH
9617: LD_VAR 0 1
9621: PPUSH
9622: CALL_OW 52
// tmp1 = [ tmp ] ;
9626: LD_ADDR_VAR 0 2
9630: PUSH
9631: LD_VAR 0 1
9635: PUSH
9636: EMPTY
9637: LIST
9638: ST_TO_ADDR
// vc_chassis = arv1_ch ;
9639: LD_ADDR_OWVAR 37
9643: PUSH
9644: LD_EXP 14
9648: ST_TO_ADDR
// vc_weapon = arv1_wp ;
9649: LD_ADDR_OWVAR 40
9653: PUSH
9654: LD_EXP 15
9658: ST_TO_ADDR
// tmp = createvehicle ;
9659: LD_ADDR_VAR 0 1
9663: PUSH
9664: CALL_OW 45
9668: ST_TO_ADDR
// setdir ( tmp , 2 ) ;
9669: LD_VAR 0 1
9673: PPUSH
9674: LD_INT 2
9676: PPUSH
9677: CALL_OW 233
// placeunitarea ( tmp , cestasever , false ) ;
9681: LD_VAR 0 1
9685: PPUSH
9686: LD_INT 4
9688: PPUSH
9689: LD_INT 0
9691: PPUSH
9692: CALL_OW 49
// preparemechanic ( sex_male , arv1_sk ) ;
9696: LD_INT 1
9698: PPUSH
9699: LD_EXP 16
9703: PPUSH
9704: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
9708: CALL_OW 44
9712: PPUSH
9713: LD_VAR 0 1
9717: PPUSH
9718: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
9722: LD_ADDR_VAR 0 2
9726: PUSH
9727: LD_VAR 0 2
9731: PUSH
9732: LD_VAR 0 1
9736: PUSH
9737: EMPTY
9738: LIST
9739: ADD
9740: ST_TO_ADDR
// vc_chassis = arv2_ch ;
9741: LD_ADDR_OWVAR 37
9745: PUSH
9746: LD_EXP 17
9750: ST_TO_ADDR
// vc_weapon = arv2_wp ;
9751: LD_ADDR_OWVAR 40
9755: PUSH
9756: LD_EXP 18
9760: ST_TO_ADDR
// tmp = createvehicle ;
9761: LD_ADDR_VAR 0 1
9765: PUSH
9766: CALL_OW 45
9770: ST_TO_ADDR
// setdir ( tmp , 3 ) ;
9771: LD_VAR 0 1
9775: PPUSH
9776: LD_INT 3
9778: PPUSH
9779: CALL_OW 233
// placeunitarea ( tmp , cestasever , false ) ;
9783: LD_VAR 0 1
9787: PPUSH
9788: LD_INT 4
9790: PPUSH
9791: LD_INT 0
9793: PPUSH
9794: CALL_OW 49
// preparemechanic ( sex_male , arv2_sk ) ;
9798: LD_INT 1
9800: PPUSH
9801: LD_EXP 19
9805: PPUSH
9806: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
9810: CALL_OW 44
9814: PPUSH
9815: LD_VAR 0 1
9819: PPUSH
9820: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
9824: LD_ADDR_VAR 0 2
9828: PUSH
9829: LD_VAR 0 2
9833: PUSH
9834: LD_VAR 0 1
9838: PUSH
9839: EMPTY
9840: LIST
9841: ADD
9842: ST_TO_ADDR
// if debug then
9843: LD_EXP 44
9847: IFFALSE 9856
// msg ( druhy utok (kryci) ) ;
9849: LD_STRING druhy utok (kryci)
9851: PPUSH
9852: CALL_OW 100
// attid = mcattack ( 100 , regid , tmp1 , [ mc_no_stop ] ) ;
9856: LD_ADDR_LOC 31
9860: PUSH
9861: LD_INT 100
9863: PPUSH
9864: LD_LOC 30
9868: PPUSH
9869: LD_VAR 0 2
9873: PPUSH
9874: LD_INT 10
9876: PUSH
9877: EMPTY
9878: LIST
9879: PPUSH
9880: CALL_OW 402
9884: ST_TO_ADDR
// arabatt = tmp1 ;
9885: LD_ADDR_LOC 29
9889: PUSH
9890: LD_VAR 0 2
9894: ST_TO_ADDR
// wait ( 0 0$5 ) ;
9895: LD_INT 175
9897: PPUSH
9898: CALL_OW 67
// preparescientist ( sex_female , arsc0_sk ) ;
9902: LD_INT 2
9904: PPUSH
9905: LD_EXP 10
9909: PPUSH
9910: CALL_OW 384
// arabsci = createhuman ;
9914: LD_ADDR_EXP 55
9918: PUSH
9919: CALL_OW 44
9923: ST_TO_ADDR
// arsci_cipl = false ;
9924: LD_ADDR_EXP 56
9928: PUSH
9929: LD_INT 0
9931: ST_TO_ADDR
// placeunitxyr ( arabsci , 97 , 118 , 2 , false ) ;
9932: LD_EXP 55
9936: PPUSH
9937: LD_INT 97
9939: PPUSH
9940: LD_INT 118
9942: PPUSH
9943: LD_INT 2
9945: PPUSH
9946: LD_INT 0
9948: PPUSH
9949: CALL_OW 50
// comcontaminate ( arabsci , 91 , 111 ) ;
9953: LD_EXP 55
9957: PPUSH
9958: LD_INT 91
9960: PPUSH
9961: LD_INT 111
9963: PPUSH
9964: CALL_OW 158
// while not arsci_cipl and not south_dep_cnt do
9968: LD_EXP 56
9972: NOT
9973: PUSH
9974: LD_LOC 33
9978: NOT
9979: AND
9980: IFFALSE 9991
// wait ( 0 0$1 ) ;
9982: LD_INT 35
9984: PPUSH
9985: CALL_OW 67
9989: GO 9968
// tmp = filterallunits ( [ [ f_side , am ] , [ f_class , class_scientistic ] ] ) diff john ;
9991: LD_ADDR_VAR 0 1
9995: PUSH
9996: LD_INT 22
9998: PUSH
9999: LD_EXP 1
10003: PUSH
10004: EMPTY
10005: LIST
10006: LIST
10007: PUSH
10008: LD_INT 25
10010: PUSH
10011: LD_INT 4
10013: PUSH
10014: EMPTY
10015: LIST
10016: LIST
10017: PUSH
10018: EMPTY
10019: LIST
10020: LIST
10021: PPUSH
10022: CALL_OW 69
10026: PUSH
10027: LD_EXP 52
10031: DIFF
10032: ST_TO_ADDR
// if not tmp then
10033: LD_VAR 0 1
10037: NOT
10038: IFFALSE 10169
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
10040: LD_ADDR_VAR 0 1
10044: PUSH
10045: LD_INT 22
10047: PUSH
10048: LD_EXP 1
10052: PUSH
10053: EMPTY
10054: LIST
10055: LIST
10056: PUSH
10057: LD_INT 50
10059: PUSH
10060: EMPTY
10061: LIST
10062: PUSH
10063: LD_INT 3
10065: PUSH
10066: LD_INT 23
10068: PUSH
10069: LD_INT 0
10071: PUSH
10072: EMPTY
10073: LIST
10074: LIST
10075: PUSH
10076: EMPTY
10077: LIST
10078: LIST
10079: PUSH
10080: EMPTY
10081: LIST
10082: LIST
10083: LIST
10084: PPUSH
10085: CALL_OW 69
10089: PUSH
10090: LD_EXP 52
10094: DIFF
10095: ST_TO_ADDR
// tmp1 = [ ] ;
10096: LD_ADDR_VAR 0 2
10100: PUSH
10101: EMPTY
10102: ST_TO_ADDR
// for tmp2 in tmp do
10103: LD_ADDR_VAR 0 3
10107: PUSH
10108: LD_VAR 0 1
10112: PUSH
10113: FOR_IN
10114: IFFALSE 10145
// tmp1 = tmp1 ^ [ getskill ( tmp2 , skill_scientistic ) ] ;
10116: LD_ADDR_VAR 0 2
10120: PUSH
10121: LD_VAR 0 2
10125: PUSH
10126: LD_VAR 0 3
10130: PPUSH
10131: LD_INT 4
10133: PPUSH
10134: CALL_OW 259
10138: PUSH
10139: EMPTY
10140: LIST
10141: ADD
10142: ST_TO_ADDR
10143: GO 10113
10145: POP
10146: POP
// tmp = bestfromlistbylist ( tmp , tmp1 ) ;
10147: LD_ADDR_VAR 0 1
10151: PUSH
10152: LD_VAR 0 1
10156: PPUSH
10157: LD_VAR 0 2
10161: PPUSH
10162: CALL_OW 79
10166: ST_TO_ADDR
// end else
10167: GO 10183
// tmp = tmp [ 1 ] ;
10169: LD_ADDR_VAR 0 1
10173: PUSH
10174: LD_VAR 0 1
10178: PUSH
10179: LD_INT 1
10181: ARRAY
10182: ST_TO_ADDR
// if tmp and south_dep_cnt and not north_dep_cnt then
10183: LD_VAR 0 1
10187: PUSH
10188: LD_LOC 33
10192: AND
10193: PUSH
10194: LD_LOC 32
10198: NOT
10199: AND
10200: IFFALSE 10325
// begin dialogueon ;
10202: CALL_OW 6
// say ( tmp , D4-Sci1-1 ) ;
10206: LD_VAR 0 1
10210: PPUSH
10211: LD_STRING D4-Sci1-1
10213: PPUSH
10214: CALL_OW 88
// say ( john , D4-JMM-1 ) ;
10218: LD_EXP 52
10222: PPUSH
10223: LD_STRING D4-JMM-1
10225: PPUSH
10226: CALL_OW 88
// say ( tmp , D4-Sci1-2 ) ;
10230: LD_VAR 0 1
10234: PPUSH
10235: LD_STRING D4-Sci1-2
10237: PPUSH
10238: CALL_OW 88
// say ( john , D4-JMM-2 ) ;
10242: LD_EXP 52
10246: PPUSH
10247: LD_STRING D4-JMM-2
10249: PPUSH
10250: CALL_OW 88
// say ( tmp , D4-Sci1-3 ) ;
10254: LD_VAR 0 1
10258: PPUSH
10259: LD_STRING D4-Sci1-3
10261: PPUSH
10262: CALL_OW 88
// say ( john , D4-JMM-3 ) ;
10266: LD_EXP 52
10270: PPUSH
10271: LD_STRING D4-JMM-3
10273: PPUSH
10274: CALL_OW 88
// if getresourcevisibility ( 23 , 37 , am ) then
10278: LD_INT 23
10280: PPUSH
10281: LD_INT 37
10283: PPUSH
10284: LD_EXP 1
10288: PPUSH
10289: CALL_OW 440
10293: IFFALSE 10309
// say ( john , D4-JMM-3a ) else
10295: LD_EXP 52
10299: PPUSH
10300: LD_STRING D4-JMM-3a
10302: PPUSH
10303: CALL_OW 88
10307: GO 10321
// say ( john , D4-JMM-3b ) ;
10309: LD_EXP 52
10313: PPUSH
10314: LD_STRING D4-JMM-3b
10316: PPUSH
10317: CALL_OW 88
// dialogueoff ;
10321: CALL_OW 7
// end ; killmc ( attid ) ;
10325: LD_LOC 31
10329: PPUSH
10330: CALL_OW 387
// commovexy ( arabatt ^ [ arabsci ] , 148 , 118 ) ;
10334: LD_LOC 29
10338: PUSH
10339: LD_EXP 55
10343: PUSH
10344: EMPTY
10345: LIST
10346: ADD
10347: PPUSH
10348: LD_INT 148
10350: PPUSH
10351: LD_INT 118
10353: PPUSH
10354: CALL_OW 111
// enable ( 03 ) ;
10358: LD_INT 3
10360: ENABLE_MARKED
// enabled2 = 0 ;
10361: LD_ADDR_LOC 35
10365: PUSH
10366: LD_INT 0
10368: ST_TO_ADDR
// enable ( 11 ) ;
10369: LD_INT 11
10371: ENABLE_MARKED
// end ;
10372: PPOPN 3
10374: END
// var attida ; every 0 0$1 trigger posily do var tmp , tmp1 ;
10375: LD_EXP 51
10379: IFFALSE 11220
10381: GO 10383
10383: DISABLE
10384: LD_INT 0
10386: PPUSH
10387: PPUSH
// begin if go4it <= ( 9 + 30 ) then
10388: LD_EXP 47
10392: PUSH
10393: LD_INT 9
10395: PUSH
10396: LD_INT 30
10398: PLUS
10399: LESSEQUAL
10400: IFFALSE 10410
// go4it = 41 ;
10402: LD_ADDR_EXP 47
10406: PUSH
10407: LD_INT 41
10409: ST_TO_ADDR
// wait ( 1 1$30 ) ;
10410: LD_INT 3150
10412: PPUSH
10413: CALL_OW 67
// if debug then
10417: LD_EXP 44
10421: IFFALSE 10430
// msg ( utok na posily ) ;
10423: LD_STRING utok na posily
10425: PPUSH
10426: CALL_OW 100
// uc_side = ar ;
10430: LD_ADDR_OWVAR 20
10434: PUSH
10435: LD_EXP 3
10439: ST_TO_ADDR
// uc_nation = nation_arabian ;
10440: LD_ADDR_OWVAR 21
10444: PUSH
10445: LD_INT 2
10447: ST_TO_ADDR
// vc_chassis = arattv0_ch ;
10448: LD_ADDR_OWVAR 37
10452: PUSH
10453: LD_EXP 25
10457: ST_TO_ADDR
// vc_control = control_manual ;
10458: LD_ADDR_OWVAR 38
10462: PUSH
10463: LD_INT 1
10465: ST_TO_ADDR
// vc_engine = engine_siberite ;
10466: LD_ADDR_OWVAR 39
10470: PUSH
10471: LD_INT 3
10473: ST_TO_ADDR
// vc_weapon = arattv0_wp ;
10474: LD_ADDR_OWVAR 40
10478: PUSH
10479: LD_EXP 26
10483: ST_TO_ADDR
// tmp = createvehicle ;
10484: LD_ADDR_VAR 0 1
10488: PUSH
10489: CALL_OW 45
10493: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10494: LD_VAR 0 1
10498: PPUSH
10499: LD_INT 4
10501: PPUSH
10502: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10506: LD_VAR 0 1
10510: PPUSH
10511: LD_INT 170
10513: PPUSH
10514: LD_INT 69
10516: PPUSH
10517: LD_INT 6
10519: PPUSH
10520: LD_INT 0
10522: PPUSH
10523: CALL_OW 50
// preparemechanic ( sex_male , aratt0 ) ;
10527: LD_INT 1
10529: PPUSH
10530: LD_EXP 20
10534: PPUSH
10535: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10539: CALL_OW 44
10543: PPUSH
10544: LD_VAR 0 1
10548: PPUSH
10549: CALL_OW 52
// tmp1 = [ tmp ] ;
10553: LD_ADDR_VAR 0 2
10557: PUSH
10558: LD_VAR 0 1
10562: PUSH
10563: EMPTY
10564: LIST
10565: ST_TO_ADDR
// vc_chassis = arattv1_ch ;
10566: LD_ADDR_OWVAR 37
10570: PUSH
10571: LD_EXP 27
10575: ST_TO_ADDR
// vc_weapon = arattv1_wp ;
10576: LD_ADDR_OWVAR 40
10580: PUSH
10581: LD_EXP 28
10585: ST_TO_ADDR
// tmp = createvehicle ;
10586: LD_ADDR_VAR 0 1
10590: PUSH
10591: CALL_OW 45
10595: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10596: LD_VAR 0 1
10600: PPUSH
10601: LD_INT 4
10603: PPUSH
10604: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10608: LD_VAR 0 1
10612: PPUSH
10613: LD_INT 170
10615: PPUSH
10616: LD_INT 69
10618: PPUSH
10619: LD_INT 6
10621: PPUSH
10622: LD_INT 0
10624: PPUSH
10625: CALL_OW 50
// preparemechanic ( sex_male , aratt1 ) ;
10629: LD_INT 1
10631: PPUSH
10632: LD_EXP 21
10636: PPUSH
10637: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10641: CALL_OW 44
10645: PPUSH
10646: LD_VAR 0 1
10650: PPUSH
10651: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
10655: LD_ADDR_VAR 0 2
10659: PUSH
10660: LD_VAR 0 2
10664: PUSH
10665: LD_VAR 0 1
10669: PUSH
10670: EMPTY
10671: LIST
10672: ADD
10673: ST_TO_ADDR
// vc_chassis = arattv2_ch ;
10674: LD_ADDR_OWVAR 37
10678: PUSH
10679: LD_EXP 29
10683: ST_TO_ADDR
// vc_weapon = arattv2_wp ;
10684: LD_ADDR_OWVAR 40
10688: PUSH
10689: LD_EXP 30
10693: ST_TO_ADDR
// tmp = createvehicle ;
10694: LD_ADDR_VAR 0 1
10698: PUSH
10699: CALL_OW 45
10703: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10704: LD_VAR 0 1
10708: PPUSH
10709: LD_INT 4
10711: PPUSH
10712: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10716: LD_VAR 0 1
10720: PPUSH
10721: LD_INT 170
10723: PPUSH
10724: LD_INT 69
10726: PPUSH
10727: LD_INT 6
10729: PPUSH
10730: LD_INT 0
10732: PPUSH
10733: CALL_OW 50
// preparemechanic ( sex_male , aratt2 ) ;
10737: LD_INT 1
10739: PPUSH
10740: LD_EXP 22
10744: PPUSH
10745: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10749: CALL_OW 44
10753: PPUSH
10754: LD_VAR 0 1
10758: PPUSH
10759: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
10763: LD_ADDR_VAR 0 2
10767: PUSH
10768: LD_VAR 0 2
10772: PUSH
10773: LD_VAR 0 1
10777: PUSH
10778: EMPTY
10779: LIST
10780: ADD
10781: ST_TO_ADDR
// vc_chassis = arattv3_ch ;
10782: LD_ADDR_OWVAR 37
10786: PUSH
10787: LD_EXP 31
10791: ST_TO_ADDR
// vc_weapon = arattv3_wp ;
10792: LD_ADDR_OWVAR 40
10796: PUSH
10797: LD_EXP 32
10801: ST_TO_ADDR
// tmp = createvehicle ;
10802: LD_ADDR_VAR 0 1
10806: PUSH
10807: CALL_OW 45
10811: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10812: LD_VAR 0 1
10816: PPUSH
10817: LD_INT 4
10819: PPUSH
10820: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10824: LD_VAR 0 1
10828: PPUSH
10829: LD_INT 170
10831: PPUSH
10832: LD_INT 69
10834: PPUSH
10835: LD_INT 6
10837: PPUSH
10838: LD_INT 0
10840: PPUSH
10841: CALL_OW 50
// preparemechanic ( sex_male , aratt3 ) ;
10845: LD_INT 1
10847: PPUSH
10848: LD_EXP 23
10852: PPUSH
10853: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10857: CALL_OW 44
10861: PPUSH
10862: LD_VAR 0 1
10866: PPUSH
10867: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
10871: LD_ADDR_VAR 0 2
10875: PUSH
10876: LD_VAR 0 2
10880: PUSH
10881: LD_VAR 0 1
10885: PUSH
10886: EMPTY
10887: LIST
10888: ADD
10889: ST_TO_ADDR
// vc_chassis = arattv4_ch ;
10890: LD_ADDR_OWVAR 37
10894: PUSH
10895: LD_EXP 33
10899: ST_TO_ADDR
// vc_weapon = arattv4_wp ;
10900: LD_ADDR_OWVAR 40
10904: PUSH
10905: LD_EXP 34
10909: ST_TO_ADDR
// tmp = createvehicle ;
10910: LD_ADDR_VAR 0 1
10914: PUSH
10915: CALL_OW 45
10919: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10920: LD_VAR 0 1
10924: PPUSH
10925: LD_INT 4
10927: PPUSH
10928: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10932: LD_VAR 0 1
10936: PPUSH
10937: LD_INT 170
10939: PPUSH
10940: LD_INT 69
10942: PPUSH
10943: LD_INT 6
10945: PPUSH
10946: LD_INT 0
10948: PPUSH
10949: CALL_OW 50
// preparemechanic ( sex_male , aratt4 ) ;
10953: LD_INT 1
10955: PPUSH
10956: LD_EXP 24
10960: PPUSH
10961: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10965: CALL_OW 44
10969: PPUSH
10970: LD_VAR 0 1
10974: PPUSH
10975: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
10979: LD_ADDR_VAR 0 2
10983: PUSH
10984: LD_VAR 0 2
10988: PUSH
10989: LD_VAR 0 1
10993: PUSH
10994: EMPTY
10995: LIST
10996: ADD
10997: ST_TO_ADDR
// if difficulty = 3 then
10998: LD_OWVAR 67
11002: PUSH
11003: LD_INT 3
11005: EQUAL
11006: IFFALSE 11116
// begin vc_chassis = arattv4_ch ;
11008: LD_ADDR_OWVAR 37
11012: PUSH
11013: LD_EXP 33
11017: ST_TO_ADDR
// vc_weapon = arattv4_wp ;
11018: LD_ADDR_OWVAR 40
11022: PUSH
11023: LD_EXP 34
11027: ST_TO_ADDR
// tmp = createvehicle ;
11028: LD_ADDR_VAR 0 1
11032: PUSH
11033: CALL_OW 45
11037: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
11038: LD_VAR 0 1
11042: PPUSH
11043: LD_INT 4
11045: PPUSH
11046: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
11050: LD_VAR 0 1
11054: PPUSH
11055: LD_INT 170
11057: PPUSH
11058: LD_INT 69
11060: PPUSH
11061: LD_INT 6
11063: PPUSH
11064: LD_INT 0
11066: PPUSH
11067: CALL_OW 50
// preparemechanic ( sex_male , aratt4 ) ;
11071: LD_INT 1
11073: PPUSH
11074: LD_EXP 24
11078: PPUSH
11079: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11083: CALL_OW 44
11087: PPUSH
11088: LD_VAR 0 1
11092: PPUSH
11093: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
11097: LD_ADDR_VAR 0 2
11101: PUSH
11102: LD_VAR 0 2
11106: PUSH
11107: LD_VAR 0 1
11111: PUSH
11112: EMPTY
11113: LIST
11114: ADD
11115: ST_TO_ADDR
// end ; comagressivemove ( tmp1 , 82 , 62 ) ;
11116: LD_VAR 0 2
11120: PPUSH
11121: LD_INT 82
11123: PPUSH
11124: LD_INT 62
11126: PPUSH
11127: CALL_OW 114
// while unitfilter ( tmp1 , [ [ f_ok ] ] ) diff filterunitsinarea ( wayp00 , [ [ f_side , ar ] , [ f_ok ] ] ) do
11131: LD_VAR 0 2
11135: PPUSH
11136: LD_INT 50
11138: PUSH
11139: EMPTY
11140: LIST
11141: PUSH
11142: EMPTY
11143: LIST
11144: PPUSH
11145: CALL_OW 72
11149: PUSH
11150: LD_INT 11
11152: PPUSH
11153: LD_INT 22
11155: PUSH
11156: LD_EXP 3
11160: PUSH
11161: EMPTY
11162: LIST
11163: LIST
11164: PUSH
11165: LD_INT 50
11167: PUSH
11168: EMPTY
11169: LIST
11170: PUSH
11171: EMPTY
11172: LIST
11173: LIST
11174: PPUSH
11175: CALL_OW 70
11179: DIFF
11180: IFFALSE 11191
// wait ( 0 0$1 ) ;
11182: LD_INT 35
11184: PPUSH
11185: CALL_OW 67
11189: GO 11131
// attida = mcattack ( 100 , regid , tmp1 , [ mc_no_stop ] ) ;
11191: LD_ADDR_LOC 36
11195: PUSH
11196: LD_INT 100
11198: PPUSH
11199: LD_LOC 30
11203: PPUSH
11204: LD_VAR 0 2
11208: PPUSH
11209: LD_INT 10
11211: PUSH
11212: EMPTY
11213: LIST
11214: PPUSH
11215: CALL_OW 402
11219: ST_TO_ADDR
// end ;
11220: PPOPN 2
11222: END
// var attidb ; export attno ; every 0 0$10 + 10 10$0 marked 11 do var tmp , tmp1 , tmp2 , ch , wp , ctrl , neco ;
11223: GO 11225
11225: DISABLE
11226: LD_INT 0
11228: PPUSH
11229: PPUSH
11230: PPUSH
11231: PPUSH
11232: PPUSH
11233: PPUSH
11234: PPUSH
// begin go4it = go4it - 1 ;
11235: LD_ADDR_EXP 47
11239: PUSH
11240: LD_EXP 47
11244: PUSH
11245: LD_INT 1
11247: MINUS
11248: ST_TO_ADDR
// if not go4it then
11249: LD_EXP 47
11253: NOT
11254: IFFALSE 12213
// begin if debug then
11256: LD_EXP 44
11260: IFFALSE 11269
// msg ( nejaky ten utok ) ;
11262: LD_STRING nejaky ten utok
11264: PPUSH
11265: CALL_OW 100
// attno = attno + 1 ;
11269: LD_ADDR_EXP 59
11273: PUSH
11274: LD_EXP 59
11278: PUSH
11279: LD_INT 1
11281: PLUS
11282: ST_TO_ADDR
// uc_side = ar ;
11283: LD_ADDR_OWVAR 20
11287: PUSH
11288: LD_EXP 3
11292: ST_TO_ADDR
// uc_nation = nation_arabian ;
11293: LD_ADDR_OWVAR 21
11297: PUSH
11298: LD_INT 2
11300: ST_TO_ADDR
// case difficulty of 1 :
11301: LD_OWVAR 67
11305: PUSH
11306: LD_INT 1
11308: DOUBLE
11309: EQUAL
11310: IFTRUE 11314
11312: GO 11375
11314: POP
// begin ch = [ ar_half_tracked ] ;
11315: LD_ADDR_VAR 0 4
11319: PUSH
11320: LD_INT 14
11322: PUSH
11323: EMPTY
11324: LIST
11325: ST_TO_ADDR
// wp = [ ar_gun , ar_gun , ar_gun , ar_rocket_launcher , ar_flame_thrower , ar_gatling_gun , ar_gatling_gun , ar_gatling_gun , ar_double_machine_gun , ar_double_machine_gun ] ;
11326: LD_ADDR_VAR 0 5
11330: PUSH
11331: LD_INT 27
11333: PUSH
11334: LD_INT 27
11336: PUSH
11337: LD_INT 27
11339: PUSH
11340: LD_INT 28
11342: PUSH
11343: LD_INT 26
11345: PUSH
11346: LD_INT 25
11348: PUSH
11349: LD_INT 25
11351: PUSH
11352: LD_INT 25
11354: PUSH
11355: LD_INT 24
11357: PUSH
11358: LD_INT 24
11360: PUSH
11361: EMPTY
11362: LIST
11363: LIST
11364: LIST
11365: LIST
11366: LIST
11367: LIST
11368: LIST
11369: LIST
11370: LIST
11371: LIST
11372: ST_TO_ADDR
// end ; 2 :
11373: GO 11530
11375: LD_INT 2
11377: DOUBLE
11378: EQUAL
11379: IFTRUE 11383
11381: GO 11448
11383: POP
// begin ch = [ ar_half_tracked , ar_half_tracked ] ;
11384: LD_ADDR_VAR 0 4
11388: PUSH
11389: LD_INT 14
11391: PUSH
11392: LD_INT 14
11394: PUSH
11395: EMPTY
11396: LIST
11397: LIST
11398: ST_TO_ADDR
// wp = [ ar_gun , ar_gun , ar_gun , ar_rocket_launcher , ar_flame_thrower , ar_flame_thrower , ar_gatling_gun , ar_gun , ar_rocket_launcher , ar_flame_thrower ] ;
11399: LD_ADDR_VAR 0 5
11403: PUSH
11404: LD_INT 27
11406: PUSH
11407: LD_INT 27
11409: PUSH
11410: LD_INT 27
11412: PUSH
11413: LD_INT 28
11415: PUSH
11416: LD_INT 26
11418: PUSH
11419: LD_INT 26
11421: PUSH
11422: LD_INT 25
11424: PUSH
11425: LD_INT 27
11427: PUSH
11428: LD_INT 28
11430: PUSH
11431: LD_INT 26
11433: PUSH
11434: EMPTY
11435: LIST
11436: LIST
11437: LIST
11438: LIST
11439: LIST
11440: LIST
11441: LIST
11442: LIST
11443: LIST
11444: LIST
11445: ST_TO_ADDR
// end ; 3 :
11446: GO 11530
11448: LD_INT 3
11450: DOUBLE
11451: EQUAL
11452: IFTRUE 11456
11454: GO 11529
11456: POP
// begin ch = [ ar_half_tracked , ar_half_tracked , ar_half_tracked , ar_half_tracked ] ;
11457: LD_ADDR_VAR 0 4
11461: PUSH
11462: LD_INT 14
11464: PUSH
11465: LD_INT 14
11467: PUSH
11468: LD_INT 14
11470: PUSH
11471: LD_INT 14
11473: PUSH
11474: EMPTY
11475: LIST
11476: LIST
11477: LIST
11478: LIST
11479: ST_TO_ADDR
// wp = [ ar_gun , ar_gun , ar_gun , ar_rocket_launcher , ar_flame_thrower , ar_flame_thrower , ar_flame_thrower , ar_rocket_launcher , ar_rocket_launcher , ar_flame_thrower ] ;
11480: LD_ADDR_VAR 0 5
11484: PUSH
11485: LD_INT 27
11487: PUSH
11488: LD_INT 27
11490: PUSH
11491: LD_INT 27
11493: PUSH
11494: LD_INT 28
11496: PUSH
11497: LD_INT 26
11499: PUSH
11500: LD_INT 26
11502: PUSH
11503: LD_INT 26
11505: PUSH
11506: LD_INT 28
11508: PUSH
11509: LD_INT 28
11511: PUSH
11512: LD_INT 26
11514: PUSH
11515: EMPTY
11516: LIST
11517: LIST
11518: LIST
11519: LIST
11520: LIST
11521: LIST
11522: LIST
11523: LIST
11524: LIST
11525: LIST
11526: ST_TO_ADDR
// end ; end ;
11527: GO 11530
11529: POP
// vc_control = control_manual ;
11530: LD_ADDR_OWVAR 38
11534: PUSH
11535: LD_INT 1
11537: ST_TO_ADDR
// vc_engine = engine_siberite ;
11538: LD_ADDR_OWVAR 39
11542: PUSH
11543: LD_INT 3
11545: ST_TO_ADDR
// tmp1 = [ ] ;
11546: LD_ADDR_VAR 0 2
11550: PUSH
11551: EMPTY
11552: ST_TO_ADDR
// case difficulty of 1 :
11553: LD_OWVAR 67
11557: PUSH
11558: LD_INT 1
11560: DOUBLE
11561: EQUAL
11562: IFTRUE 11566
11564: GO 11577
11566: POP
// neco = 1 ; 2 :
11567: LD_ADDR_VAR 0 7
11571: PUSH
11572: LD_INT 1
11574: ST_TO_ADDR
11575: GO 11616
11577: LD_INT 2
11579: DOUBLE
11580: EQUAL
11581: IFTRUE 11585
11583: GO 11596
11585: POP
// neco = 2 ; 3 :
11586: LD_ADDR_VAR 0 7
11590: PUSH
11591: LD_INT 2
11593: ST_TO_ADDR
11594: GO 11616
11596: LD_INT 3
11598: DOUBLE
11599: EQUAL
11600: IFTRUE 11604
11602: GO 11615
11604: POP
// neco = 4 ; end ;
11605: LD_ADDR_VAR 0 7
11609: PUSH
11610: LD_INT 4
11612: ST_TO_ADDR
11613: GO 11616
11615: POP
// if attno > 3 then
11616: LD_EXP 59
11620: PUSH
11621: LD_INT 3
11623: GREATER
11624: IFFALSE 11650
// neco = neco + ( ( attno - 3 ) div 2 ) ;
11626: LD_ADDR_VAR 0 7
11630: PUSH
11631: LD_VAR 0 7
11635: PUSH
11636: LD_EXP 59
11640: PUSH
11641: LD_INT 3
11643: MINUS
11644: PUSH
11645: LD_INT 2
11647: DIV
11648: PLUS
11649: ST_TO_ADDR
// for tmp2 = 1 to 2 + neco do
11650: LD_ADDR_VAR 0 3
11654: PUSH
11655: DOUBLE
11656: LD_INT 1
11658: DEC
11659: ST_TO_ADDR
11660: LD_INT 2
11662: PUSH
11663: LD_VAR 0 7
11667: PLUS
11668: PUSH
11669: FOR_TO
11670: IFFALSE 11892
// begin vc_chassis = ch [ rand ( 1 , 0 + ch ) ] ;
11672: LD_ADDR_OWVAR 37
11676: PUSH
11677: LD_VAR 0 4
11681: PUSH
11682: LD_INT 1
11684: PPUSH
11685: LD_INT 0
11687: PUSH
11688: LD_VAR 0 4
11692: PLUS
11693: PPUSH
11694: CALL_OW 12
11698: ARRAY
11699: ST_TO_ADDR
// vc_weapon = wp [ rand ( 1 , 0 + wp ) ] ;
11700: LD_ADDR_OWVAR 40
11704: PUSH
11705: LD_VAR 0 5
11709: PUSH
11710: LD_INT 1
11712: PPUSH
11713: LD_INT 0
11715: PUSH
11716: LD_VAR 0 5
11720: PLUS
11721: PPUSH
11722: CALL_OW 12
11726: ARRAY
11727: ST_TO_ADDR
// ctrl = 0 ;
11728: LD_ADDR_VAR 0 6
11732: PUSH
11733: LD_INT 0
11735: ST_TO_ADDR
// if prob ( 33 ) then
11736: LD_INT 33
11738: PPUSH
11739: CALL_OW 13
11743: IFFALSE 11753
// ctrl = 1 ;
11745: LD_ADDR_VAR 0 6
11749: PUSH
11750: LD_INT 1
11752: ST_TO_ADDR
// if ctrl then
11753: LD_VAR 0 6
11757: IFFALSE 11767
// vc_control = control_apeman ;
11759: LD_ADDR_OWVAR 38
11763: PUSH
11764: LD_INT 5
11766: ST_TO_ADDR
// tmp = createvehicle ;
11767: LD_ADDR_VAR 0 1
11771: PUSH
11772: CALL_OW 45
11776: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
11777: LD_VAR 0 1
11781: PPUSH
11782: LD_INT 4
11784: PPUSH
11785: CALL_OW 233
// placeunitxyr ( tmp , 187 , 109 , 6 , false ) ;
11789: LD_VAR 0 1
11793: PPUSH
11794: LD_INT 187
11796: PPUSH
11797: LD_INT 109
11799: PPUSH
11800: LD_INT 6
11802: PPUSH
11803: LD_INT 0
11805: PPUSH
11806: CALL_OW 50
// if not ctrl then
11810: LD_VAR 0 6
11814: NOT
11815: IFFALSE 11863
// begin preparemechanic ( sex_male , rand ( 3 + difficulty , 5 + difficulty ) ) ;
11817: LD_INT 1
11819: PPUSH
11820: LD_INT 3
11822: PUSH
11823: LD_OWVAR 67
11827: PLUS
11828: PPUSH
11829: LD_INT 5
11831: PUSH
11832: LD_OWVAR 67
11836: PLUS
11837: PPUSH
11838: CALL_OW 12
11842: PPUSH
11843: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11847: CALL_OW 44
11851: PPUSH
11852: LD_VAR 0 1
11856: PPUSH
11857: CALL_OW 52
// end else
11861: GO 11871
// vc_control = control_manual ;
11863: LD_ADDR_OWVAR 38
11867: PUSH
11868: LD_INT 1
11870: ST_TO_ADDR
// tmp1 = tmp1 ^ [ tmp ] ;
11871: LD_ADDR_VAR 0 2
11875: PUSH
11876: LD_VAR 0 2
11880: PUSH
11881: LD_VAR 0 1
11885: PUSH
11886: EMPTY
11887: LIST
11888: ADD
11889: ST_TO_ADDR
// end ;
11890: GO 11669
11892: POP
11893: POP
// vc_control = control_apeman ;
11894: LD_ADDR_OWVAR 38
11898: PUSH
11899: LD_INT 5
11901: ST_TO_ADDR
// if attno > 3 then
11902: LD_EXP 59
11906: PUSH
11907: LD_INT 3
11909: GREATER
11910: IFFALSE 12072
// begin if difficulty > 1 then
11912: LD_OWVAR 67
11916: PUSH
11917: LD_INT 1
11919: GREATER
11920: IFFALSE 12000
// begin vc_chassis = ar_half_tracked ;
11922: LD_ADDR_OWVAR 37
11926: PUSH
11927: LD_INT 14
11929: ST_TO_ADDR
// vc_weapon = ar_selfpropelled_bomb ;
11930: LD_ADDR_OWVAR 40
11934: PUSH
11935: LD_INT 29
11937: ST_TO_ADDR
// tmp = createvehicle ;
11938: LD_ADDR_VAR 0 1
11942: PUSH
11943: CALL_OW 45
11947: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
11948: LD_VAR 0 1
11952: PPUSH
11953: LD_INT 4
11955: PPUSH
11956: CALL_OW 233
// placeunitxyr ( tmp , 187 , 109 , 7 , false ) ;
11960: LD_VAR 0 1
11964: PPUSH
11965: LD_INT 187
11967: PPUSH
11968: LD_INT 109
11970: PPUSH
11971: LD_INT 7
11973: PPUSH
11974: LD_INT 0
11976: PPUSH
11977: CALL_OW 50
// tmp1 = tmp1 ^ [ tmp ] ;
11981: LD_ADDR_VAR 0 2
11985: PUSH
11986: LD_VAR 0 2
11990: PUSH
11991: LD_VAR 0 1
11995: PUSH
11996: EMPTY
11997: LIST
11998: ADD
11999: ST_TO_ADDR
// end ; if difficulty > 2 then
12000: LD_OWVAR 67
12004: PUSH
12005: LD_INT 2
12007: GREATER
12008: IFFALSE 12072
// begin tmp = createvehicle ;
12010: LD_ADDR_VAR 0 1
12014: PUSH
12015: CALL_OW 45
12019: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
12020: LD_VAR 0 1
12024: PPUSH
12025: LD_INT 4
12027: PPUSH
12028: CALL_OW 233
// placeunitxyr ( tmp , 187 , 109 , 7 , false ) ;
12032: LD_VAR 0 1
12036: PPUSH
12037: LD_INT 187
12039: PPUSH
12040: LD_INT 109
12042: PPUSH
12043: LD_INT 7
12045: PPUSH
12046: LD_INT 0
12048: PPUSH
12049: CALL_OW 50
// tmp1 = tmp1 ^ [ tmp ] ;
12053: LD_ADDR_VAR 0 2
12057: PUSH
12058: LD_VAR 0 2
12062: PUSH
12063: LD_VAR 0 1
12067: PUSH
12068: EMPTY
12069: LIST
12070: ADD
12071: ST_TO_ADDR
// end ; end ; comagressivemove ( tmp1 , 82 , 62 ) ;
12072: LD_VAR 0 2
12076: PPUSH
12077: LD_INT 82
12079: PPUSH
12080: LD_INT 62
12082: PPUSH
12083: CALL_OW 114
// while unitfilter ( tmp1 , [ [ f_ok ] ] ) diff filterunitsinarea ( wayp00 , [ [ f_side , ar ] , [ f_ok ] ] ) do
12087: LD_VAR 0 2
12091: PPUSH
12092: LD_INT 50
12094: PUSH
12095: EMPTY
12096: LIST
12097: PUSH
12098: EMPTY
12099: LIST
12100: PPUSH
12101: CALL_OW 72
12105: PUSH
12106: LD_INT 11
12108: PPUSH
12109: LD_INT 22
12111: PUSH
12112: LD_EXP 3
12116: PUSH
12117: EMPTY
12118: LIST
12119: LIST
12120: PUSH
12121: LD_INT 50
12123: PUSH
12124: EMPTY
12125: LIST
12126: PUSH
12127: EMPTY
12128: LIST
12129: LIST
12130: PPUSH
12131: CALL_OW 70
12135: DIFF
12136: IFFALSE 12147
// wait ( 0 0$1 ) ;
12138: LD_INT 35
12140: PPUSH
12141: CALL_OW 67
12145: GO 12087
// attidb = mcattack ( 100 , regid , tmp1 , [ mc_no_stop ] ) ;
12147: LD_ADDR_LOC 37
12151: PUSH
12152: LD_INT 100
12154: PPUSH
12155: LD_LOC 30
12159: PPUSH
12160: LD_VAR 0 2
12164: PPUSH
12165: LD_INT 10
12167: PUSH
12168: EMPTY
12169: LIST
12170: PPUSH
12171: CALL_OW 402
12175: ST_TO_ADDR
// go4it = rand ( delay2 * 3 , 108 - 18 * difficulty ) ;
12176: LD_ADDR_EXP 47
12180: PUSH
12181: LD_EXP 46
12185: PUSH
12186: LD_INT 3
12188: MUL
12189: PPUSH
12190: LD_INT 108
12192: PUSH
12193: LD_INT 18
12195: PUSH
12196: LD_OWVAR 67
12200: MUL
12201: MINUS
12202: PPUSH
12203: CALL_OW 12
12207: ST_TO_ADDR
// enable ( 12 ) ;
12208: LD_INT 12
12210: ENABLE_MARKED
// end else
12211: GO 12214
// enable ;
12213: ENABLE
// end ;
12214: PPOPN 7
12216: END
// every 0 0$3.3 + 1 marked 12 do
12217: GO 12219
12219: DISABLE
// begin if not unitfilter ( getmcunits ( attidb ) , [ f_or , [ f_occupied ] , [ f_type , unit_human ] ] ) then
12220: LD_LOC 37
12224: PPUSH
12225: CALL_OW 389
12229: PPUSH
12230: LD_INT 2
12232: PUSH
12233: LD_INT 59
12235: PUSH
12236: EMPTY
12237: LIST
12238: PUSH
12239: LD_INT 21
12241: PUSH
12242: LD_INT 1
12244: PUSH
12245: EMPTY
12246: LIST
12247: LIST
12248: PUSH
12249: EMPTY
12250: LIST
12251: LIST
12252: LIST
12253: PPUSH
12254: CALL_OW 72
12258: NOT
12259: IFFALSE 12275
// begin killmc ( attidb ) ;
12261: LD_LOC 37
12265: PPUSH
12266: CALL_OW 387
// enable ( 11 ) ;
12270: LD_INT 11
12272: ENABLE_MARKED
// end else
12273: GO 12276
// enable ;
12275: ENABLE
// end ;
12276: END
